Are you sure you need to use subreports for the crosstabs? The subreport is what is preventing the virtual pages.
If your column field has consistent results from report run to report run, you can create a group based on the column fields which limits the number of columns. If they are sequential numbers, you can use a formula like:
if {table.colfield} in 1 to 8 then 1 else 2
Or, if your columns are, e.g., A,D,H,L,R,S,V,Z, you could use:
if {table.colfield} in ["A" to "L"] then 1 else 2
Then insert a group on this formula and place the crosstab in the group header or footer.
Your row totals will, of course, be limited to the members of the group instance.
-LB