24v dc High current variable speed Voltage regulator
An "easy enough" method is to on/off PWM the supply to the motor with a variable duty cycle square wave.
.
The 2SD2390 transistors are Darlingtons rated at 10A each.
So use say 4 in parallel.  

Apply variable duty cycle square wave drive to the bases.
You'll need a flyback diode/ diodes.
A bunch of 1N400x (1A low frequency diodes) may be the cheapest / easiest solution if you keep PWM frequency low. 

At 5A Vcesat is about 1V so at 20A / 4 transistors you'll dissipate P = V x I = 1V x 20A = 20W or 5 watt per transistor. 

Add your "big heatsink".
Fan cool it if necessary.

You'll need a source of variable mark space square-wave.
555 is the typical solution.
I'd use a 74xx14 (hex schmitt inverter). 

_________________________________________

General principle:







simulate this circuit &ndash; Schematic created using CircuitLab