How to make this interface work when there are too many objects?

My situation is this: I have an administrative app for a school. A teacher can see a list of her classes, and their students, and you can drag a player from one class to another:

enter image description here

This works really well as long as the number of classes is less than about 12, after which it scrolls off the screen . But in my data set, I've got a small number of situations where I'd need to handle 20 or even 30.

What would be a good way to preserve the usefulness of this interface but handle the occasional large number of columns?