The way I did this at work was to first figure out how many items I was dealing with and then work out the correct partitions for my list. I then did a series of foreaches using pos, one for each column.
in reply to OT - Dynamic data into columns in XSLT
However, I achieved the columnar effect using a style sheet and divs.
This freed me up from trying to fill a table (which you are doing) as I could fill my data vertically whereas a table requires me to fill horizontally. This is a bit different (possibly harder!) to complete.
So .... I filled a set of divs with my partitioned data and then used CSS to move them where I wanted. This is easy enough using the old 'float' syntax.
I can't provide any more help now as I am at work. If you need more assistance put your XML and your expected output on your scratchpad or as a reply to this node. I am sure someone else can help . . . I'd be interested in seeing their answer too.