Answer: Yes, but only if he houses 37, 38, 39, or 40 fish
Anything larger than 40 and he'll need more room.
==========================================================
Explanation:
The tank is 30 cm by 30 cm by 100 cm. The volume is 30*30*100 = 90,000 cm^3 which is shorthand for "cubic centimeters".
We're told that 1000 cm^3 = 1 liter, which means the 90,000 cm^3 converts to (90,000)/(1000) = 90 liters.
The fish tank is 90 liters.
Since 1 gallon = 4.5 liters, this means the 90 liter tank converts to 90/(4.5) = 20 gallons
----------------------------
Your teacher mentions "He can keep 2 small fish for every 1 gallon".
Since the tank is 20 gallons, that means he can keep 20*2 = 40 fish. This value is larger than 36, so Matt is correct to a point. If Matt is thinking 37, 38, 39, or 40 fish then he would be correct. If Matt is wanting more than 40 fish, then he'll need a bigger tank.
In short, he can't have any number over 36 and can only have 4 specific values (the four values mentioned earlier).
So technically, Matt is correct, but strong clarification is needed.