I have continue my search. I have found a solution, but entirely based on JavaScript and this is far from ideal. This solution is to create many profile field groups, then hide them all except the first with Javascript, and add a button that will show the next group.