Hi Alex! I have this problem in the program that I am teaching in, and I have found a couple of remedies.
- Always have a more advanced activity on-hand for the more advanced students. They usually finished before the lower level students and had extra time simply doing nothing. Come prepared with more advanced activities specially for them.
- Use peer-teaching. If you are teaching a grammar point, use the more advanced students as peer aids. Although I don't recommend taking advantage of them, every once in a while it can be beneficial to both.
- Use grouping and pairwork accordingly. If an activity lends itself to a heterogenous group, simply split the class into two groups and modify the activity to fit their levels. Or, find out which students are compatible with each other (despite proficiency differences) and pair them up.
- It's always easier (for me) to make an activity more difficult. You could add more difficult vocabulary, add another task, or include more reading for those more advanced students.
I hope these ideas will help you. I'm always looking forward to reading others' ideas.