I know it is way too late, but, for what it's worth, there is a minor math error above, and one big error in the setup of the problem.
Assuming the system is thermally isolated, you have set up the problem mostly correctly. However, on the right-hand side, you have the water warming from 90 to 120 oC before it boils. In our STP scheme here, water cannot exist above 100 oC, so it should rise from 90 oC t0 100 oC, and then boil, if more heat is added to it.
But the big error is in the setup. To get some of the water to boil away, you first need to raise the water's temperature from 90 to 100 Celsius (as usual, we assume uniform heating so that none of the water boils away while other parts of the water are below 100 Celsius). How much heat energy is needed to raise 0.5 kg of water from 90 to 100 Celsius? As you correctly wrote the form for above, with no phase change, we have
Q = mc(ΔT) = (0.5 kg)(4186 J/(kg·oC))(100 oC - 90 oC) = 20,930 J
If the aluminum is to boil away some of the water, in thermal isolation, it will have to (as you correctly set up) come to 100 oC, because it must be at the temperature of the whatever water remains, which will stay on the edge of boiling (again, assuming thermal isolation).
How much heat does aluminum have to give away to cool from 120 to 100 Celsius?
Q = (0.3 kg)(900 J/(kg·oC))(100 oC - 120 oC) = -5400 J (the negative means this heat goes OUT of the system)
Herein lies the problem. The amount of heat the aluminum gives off in cooling from 120 to 100 Celsius is less than the amount of heat the water needs to take in to get from 90 to 100 Celsius. Hence, the aluminum does not give off enough heat over that temperature interval to boil ANY water, which is why (even if you set up the heat transfer equation fully correctly for this case) you would get a negative mass boiling.
(actually, you could consider that negative mass to be an amount of additional steam at 100 Celsius, from somewhere else, which would have to come in and condense, giving off additional heat which could then be added to the 0.5 kg of water to give it enough additional heat to bring that 0.5 kg just to a boil)
To remedy this problem, you need to make sure you give the 0.5 kg of water at least enough heat to bring it to 100 Celsius (and more if you want a certain amount of the water to boil). The threshold is thus Q = 20,930 J. You need at least this much heat to raise the 0.5 kg of water to 100 Celsius.
We could accomplish this by raising the starting temperature of the aluminum (assuming we do not reach its melting point, which we probably will not), or by increasing the mass of the aluminum. Let's try to raising the temperature. What temperature would 0.3 kg of aluminum have to start at to give the threshold amount of heat to the water?
Q = -20,930 J = (0.3 kg)(900 J/(kg·oC))(100 oC - Ti) (the heat is negative because the aluminum has to give away this much heat)
Then solve for Ti. I calculate we need Ti = 177.5 Celsius would just bring the water to a boil. Thus, this amount of aluminum would have to start at over 177.5 Celsius to boil any water. And, just to be absolutely sure, this is well below the 660 oC melting point of aluminum, so it is achievable.
Hope this may still help!