The issue of how you format a report has been at least partly addressed, but having an "info1, info2, info3" grouping shows that you also have non-normalized data involved. If that is strictly for a report and the original data elements are normalized in a child table then it makes some kind of sense, I suppose.
I might suggest, though it is probably a pain in the toches to do it, that you could create an Excel Application Object and create a spreadsheet as your report. You could run a query to determine how many records you have so you can decide how many rows you need before you break at the midpoint to start the next set of six columns in column H. Placing the data in the appropriate rows and columns might be no worse than a loop within a loop, because with Excel you have essentially random access to the cells by row/column identifiers.