Hiya,
Sorry only just noticed this post so that’s why I haven’t replied yet 
I think (could be wrong though) that you could maybe get this to work by using PHP in conjunction with the categories tag.
What you would do is set a $count variable to 0 before the categories tag spits anything out. You would then spit out each category into a DIV (far left column) and let this happen for as many that you want in a column each time incrementing the PHP $count variable. Once you reach the count that you wish to start the next DIV at you would start a new DIV and carry on as before and so on and so forth.
This (with a little bit of clever PHP) could also be totally dynamic so that you could first of all find out how many towns there are altogether, divide this by three for your columns (or however many columns you would like - being dynamic this could even be changed on the fly!). You would then have a max width that the columns are allowed to take up in the design and then you could dynamically create the DIV columns to these specifications. A little bit of work but it would mean that any time you add new towns to the list then the page would automatically re-design itself as it were to the correct format every time!!!
Now I could be completely wrong on all of this and I gladly welcome people to tell me that I am as I have been in the past… aren’t we all at some time!! :-D but I am almost 99% sure it should be able to be done like this.
Also as silenz has said a plugin could probably be created to handle this for you also but I personally wouldn’t know where to start on that myself.
Hope this helps a bit?
Best wishes,
Mark