Can you dynamically change the columns in the content manager?

For example, say I wanted to have something like a transcript (table A) that showed which classes a student had taken. Depending on the classes (table B) I have, the categories in the transcript would change. Is there a way where when I designate certain fields in table B as required (using a boolean for example) it would automatically update and add a field in table A?