That's essentially a chain of permissions and it's no easy task I'm afraid. Basically your supervisors would be CB Moderators which can approve the registration of a teacher. These supervisors have absolute moderator control over every profile except other supervisors. The tricky part is having teachers have moderator control of student profiles only and what if a student belongs in more than 1 teachers class for example. I think the best way to do this is as follows.
1. Supervisor is CB Moderators
2. Registration set to require approval and confirmation
3. Registration would have a select field to select if registering as a student or teacher
4. CB Conditional would be used to adjust what information is requested of the user based off the registration type they've selected
5. CB GroupJive would be used for class collaboration. Meaning teachers are the only ones with group create access. The only group type available should be Approval. Student requests to join the group and must be approved by the teacher (who is the owner of the group) or can be invited by the teacher (adjust invite access accordingly)
6. Set profiles, userlists, etc.. to have Registered access at minimum
This should give you a closed system with profiles per user. Allow for self registration (teachers and users) that supervisors need to approve and allow for class by class collaboration with control over the class given to the teacher (they can manage all aspects of their group).
You can basically tinker with all these concepts on our demo site below as well if you want to see if it'll fit your needs.
demo.cbdemosites.com/
I can't think of any other way to do it as you can't have a CB Moderator for a subset of users and still brings up the issue of what if the student has more than 1 teacher, etc..