One things... depending on how complicated the table is (if you are using any kind of colored borders or nesting) this may not turn out right if the number of items does not evenly divide by 3. The problem will likely not exist in Explorer, but in netscape the last row will look funny.
What you can do is make each cell 33%. Then, when you are done your loop... take $Offset=$Counter % 3
Then, of $Offset!=0, make a cell that has width of:
(3-$Offset)*33
This should guarantee that the last row has enough cells... and that they fill out the table.
You may need to add a little additional logic -- but I have got it working on a couple of production sites.