To get close to 952, you can quickly think of 106x9. 106 is easy to obtain and you have a 3. You can get another 3 from 75/25. You're now at 954 with only a 50 left. If you could divide by 25, that would give you the 2 you're missing but you already used the 25, unless you were to divide later. So instead of doing 106x3x(75/25), you do (106x3x75-50)/25.
He could have certainly thought of it another way but based on how players typically play that game, that would be a somewhat logical progression.
He had the numbers 100, 3, 6, 25, 50, 75. 25, 50 and 75 are big and difficult to work with, but 50/25=2 and 75/25=3 are far easier. He could either do it right away, but that gives him either (2 and 75) or (3 and 25) and there's still a large number. (75x ± 50y)/25 on the other hand equals (3x ± 2y) and he's down to nice small numbers.
He always chooses 4 from the top row, so he always gets 25, 50, 75, 100 and the rest are chosen randomly.
Using them in combination he can always trade 25/50 for a "2", 75/25 for a "3" and 100/25 for a "4" if he needs them to get the answer. Rather than work that out on the fly he just remembers it.
Taking it once step further he can do (75x ± 100)/25 and get 3x ± 4, or (75x ± 50) / 25 and get 3x ± 2 if that would be helpful.
One of the other answers points out that he can go further and multiply that 50 or 100 by any of the random numbers he's given, which would be equivalent to multiplying the ± constant by the same amount though he doesn't use that level of complexity in his answer.
So he's basically building a toolbox of potential moves based on knowing that he'll always get those 4 numbers. He doesn't need to do the full calculation each time.