The circuit on page 11 has a problem in that at low voltages, below the B-E threshold of the power BJT, the op amp is in open loop. The fix is to put a resistor across B-E, e.g. 2.2k, so the loop is always closed. This would also allow it to regulate outputs less than a diode drop.
I quickly hooked this up, with the LF411C being pin compatible with the LM741; the MJE15030 is just what I happened to have a bunch of.
It happily regulates 3.3V or 5.1V off a zener to the point of overheating of the BJT. (Tested with a B&K 8600 DC load.)
I replaced the resistor-zener with a pot and it happily regulates down to 0.1V 3A (for a few seconds, before the heat sink got very hot).
This was off a 12V transformer seconday.
D1-C1 improves ripple rejection by not having it dip into the zener or opamp supply as sharply if the secondary is overloaded/underfiltered.
RV1 isn't needed; the output can't exceed the rail anyway, so positive gain is pointless. Just make it a buffer and set the voltage on the positive input; skip this adjustable gain hack. But a trimmer is okay in case a zener is used for reference, but in that case the zener needs to be less and the desired voltage and the trimmer used to adjust it upwards. It can't ever adjust it downwards, obviously.
The voltage could be controlled by a DAC very easily, just replace D2 with it and make R1 bigger (for
pull-up pull-down to COM). This will also greatly improve PSRR since there's no zener current to drain C1.
Size C1 for ripple rejection.
Remove the GND reference to float off the transformer secondary.