I take it you want to loop over pages (visible ones), and split the result into batches. Then iterate over each page in a batch, and output a list of links (with names). Something like this:
Batch with a set number (4) of pages per column (max 3)
{% for pages in pages.children.visible |batch(4, null) |slice(0, 3) %}
<ul>
{% for page in pages %}
<li>
<a href="{{ page.url }}">{{ page.menu }}</a>
</li>
{% endfor %}
</ul>
{% endfor %}
Batch with a set number (3) of columns
{% for pages in pages.children.visible |batch(pages.children.visible|length / 3) %}
<ul>
{% for page in pages %}
<li>
<a href="{{ page.url }}">{{ page.menu }}</a>
</li>
{% endfor %}
</ul>
{% endfor %}
The first of course limited in that if there are more than 12 pages, they will not be included. The latter seems more apt, but a larger number of pages would of course mean longer (higher) columns, unless you filter the pages.