Let's set up a differential equation for $y(t)$.
Let $y(t)$ be the fraction of the population that has heard the rumor at time $t$
So keep in mind that $y$ is a fraction of students, not the number of students.
the rate at which the rumor spreads
that's $y'(t)$
is proportional to
that means "is equal to some constant times..."
the product of the fraction $y$ of the population that has heard the rumor and the fraction $1-y$ that has not yet heard the rumor.
that's $y \cdot (1-y)$, or really $y(t)(1-y(t))$ since $y$ here describes the fraction that has heard the rumor at time $t$.
Putting that all together, $y'(t)=ry(t)(1-y(t))$ for some constant $r$. You can solve this differential equation to get an expression for $y(t)$, which will involve yet another unknown constant.
To solve for the constants, use the two pieces of information you are given:
The school has 1000 students in total. At 8 a.m., 107 students have heard the rumor
Now we have to decide how $t$ corresponds with hours of the day. You could say $t=0$ is 8 a.m., and time is measured in hours. Then the above says $y(0)=107/1000$.
and by noon, half the school has heard it
Since noon is 4 hours after 8 a.m., this says $y(4)=1/2$.
So you can plug in the two points $y(0)=107/1000$ and $y(4)=1/2$ into your solution for $y(t)$ to solve for the unknown constants. Once you've done that, you will have an expression for $y(t)$ where all the constants are known. Finally,
determine how much time passes before 90% of the students will have heard the rumor.
So we need to solve $y(t)=0.90$, which you can do since you now know $y(t)$.