The answer is:
a minimum of 7 questions
Here's the way you get that number:
To solve this puzzle, I'm first going to look at a simpler variation where every student can have only 1 out of 4 possible grades: A, B, C, or D. We can do this the normal way with 3 questions (Which students got A, which students got B, which students got C. The ones with the D are the rest which didn't lift up their hand) but there's a better way.
Split up the class population in half with the question "Which students got A or B". So for every student, no matter the answer, we cut the possibility spectrum of grades they could have in half. Now, we could ask "Which students got A" to determine the grade of the people who lifted their hand in the first question, but we could also ask "Which students got A or D". If a student lifted their hand on both questions, we know they have an A because the first question told us they can't have a D. Each grade thus corresponds to an unique set of hand lifts and hand abstains, which we could represent as a binary number like so:
A - 11
B - 10
C - 00
D - 01
With every doubling of the possible number of grades, we need 1 more question to determine which half every student is in. So for 8 possible grades that is 3 questions, for 16 it's 4 and so on. So, for N possible grades, we have to ask log2(n) questions (rounded up) to know the precise score every single student has. There are 101 scores (don't forget the 0), log2(101) is 6.65 or 7 questions needed.