This is totally Un-Tested so you need a local install for any fatal errors!!
The style.css, adjust the widths and add any padding or margins
/* Start Column Panel */
.cms-columns
{
position: relative;
margin: 0;
padding: 0;
float: left;
overflow: hidden;
width: 960px;
height: auto;
}
/* Our Column */
.cms-columns .cms-column{
position: relative;
float: left;
margin: 0;
padding: 0;
overflow: hidden;
width: 320px;
}
/* End Column Panel */
The Incomplete Sample Code, Un-Tested, based on ‘twenty ten’
https://digitalraindrops.pastebin.com/VUkd9AkN
What the code does, it looks for a category slug with the same name as the page, lets say news and news, then get the total and calculate how many per column.
//Get the total Count of posts
$postotal=(int) get_category($catid)->category_count;
$query= 'cat=' . $catid. ''; query_posts($query);
//Round up to the Nearest Whole Number
$postcount = ceil($postotal/3);
Lets say you have 97 posts the post count = 32, 32, 33 posts in columns, you might want to do something different, sample from inside the loop
<?php $counter+=1; ?>
<?php if( ($counter != $postotal) && !($counter % $postcount) ) : // Remainder = 0 ?>
</div> <!-- Close Open Column -->
<div class="cms-column"> <!-- Add Column -->
<?php endif; ?>
Every time the counter divided by 33 returns no remainder 33 and 66, the column is closed and a new one opened.
HTH
I would asked that if you use the code then you update the pastebin with the solution.
Or maybe you could use a plugin if there is one, code is more intuitive and fun!
Phew!
David