How to add a profile with a fieldset that accepts one or more entries for event registrations
One approach would be to use Activities. Set up a custom Activity with the required fields for Program, Year etc
Another approach might be Multiple Record custom field