well...if I was using a stored proc, I work to limit there (probably much simpler) otherwise I would try something like:
in the group header set a variable to the number of items in the group and set a counter to 0:
shared numbervar tCount:=count({table.field}, group);
shared numbevar tIndex:=0;
""//to hide the formula
in the section expert for the detail for suppression I would have:
shared numbervar tCount;
shared numbervar tIndex := tIndex + 1;
tCount - tIndex > 3;
Why 3? if you have 5 items, the first time through, 5-1=4, but you don't want all the records, the next time 5-2=3
HTH