Select the same number of results for every group
Yes, query alter helps.  Views flexible pager might serve as an inspiration for the code changes. Do contribute back if you find a solution, it has been requested before. 

This problem is usually "solved" by creating different Views displays, as many as you have Groups, and filter each field value in its own display. Then show all 3 displays one after another and use styling to make them seem like they're from the same Views.