If there isn't enough room for the details of a group to print on the same column, it will break.
The solution above makes sure that you don't see an 'orphan' group, in that, a group header isn't the only section printing while the details push to the next column. This solution ensures that atkeast one record prints with the group header.
There is no way to control a group from breaking between columns however, you can control groups from breaking between pages by checking the 'Keep Group Together' option.
-Abhilash