this is where it gets difficult...
print the report, count the lines in the area to be displayed
are group headers/footers larger/smaller than the details
take a best guess and everytime a header/footer/detail is displayed increment a counter (i like shared variables, but global would work)
then in the section expert, compare the value of the counter against the 'max' (the number that you counted) and if needed force a new page.
the section expert formula would look something like:
shared numbervar counted;
(25 - counted) < 2
25 is made up, 25 lines to the page.
counted, how many lines have already been displayed.
2 1 line for the header + 1 line of detail
HTH