Can wp_list_comments output into variable?

In the default usage this is impossible due to the nature of the default comment walker which always directly outputs. But the function allows to provide a custom walker.

Further reading about custom walkers:
Codex Class reference
example custom walker class

You could also use output buffering to save it into a variable (this is considered to be dirty):

ob_start();
wp_list_comments(array('reverse_top_level' => false ), $comments);
$variable = ob_get_clean();