How would I create unique fields for different user groups programmatically? I understand this isn't possible from the Control Panel, I'm developing a custom plugin for this specific client project. Essentially these user groups won't need access to the Control Panelat all, but will have unique permissions within the site and will have a few custom fields. 

Can I create custom fields per user group? Or do I just need to create relationships between these fields and the users when they create their profile? Trying to figure out the proper way to go about this.

EDIT:
After watching the Element Type hangout as suggested, they explain why this isn't possible with the current implementation of User Groups, if you are curious.
https://youtu.be/hU_wduMEimY?t=27m44s
You could control which fields a user has access to based on their group from a front end edit profile page, but there is no way to do this in the admin outside of creating a plugin with a custom table and screens.