Dynamically grow or shrink a whole column

I have a form in list view that I am using to generate and print a report. I have investigated printSliding and anchors to the best of my ability, and my best understanding of the Developer User Guide, but I still can’t figure out if there’s a way to make an entire column dynamically grow or shrink by the same amount. In other words, the column would be as wide as the widest field in that column - similar to “Fit Width” in Excel.

My report has a title header, a header with field titles, a body with the actual fields, and a footer with a page count.

The best I’ve been able to do so far is grow/shrink by individual row, so the columns do not line up as you go down the page. Is there a way to ensure that a given field has the same width for every record in the list view, and can the title field in the header also have this same width?

I really, really do not want to resort to HTML to do this. But maybe a portal or something else I haven’t considered would be a better solution?