Try this (add to your theme’s functions.php):
function my_unlimited_posts_list( $vars ) {
if ( isset($vars['category_name']) || isset($vars['tag']) )
$vars['posts_per_page'] = -1;
return $vars;
}
add_filter( 'request', 'my_unlimited_posts_list' );