Yes Steve, you're right. The output impedance is too high unless an op-amp is used.
I tried the circuit without L1, L2, C2 and C3, and got some pretty good numbers. The output impedance at the junction of R7 and R8 was about 0.001 ohms at 1 kHz, increasing to about 0.01 ohms at 10 kHz.
Unfortunately, with that circuit, you can't just add smoothing capacitance across the output rails - this causes instability, so I've taken a different approach - individually decouple both positive and negative rails to the derived 0V rail with LC filtering.
I have specified the series resistance of the inductors and the ESR of the capacitors, but the addition of those components has increased the output impedance of the rails, although it should prevent the problem I was trying to avoid: load changes on one rail causing voltage changes on the other rail.
With the circuit shown, in simulation, output impedances on the V+ rail (relative to 0V) are 0.03R at 10 kHz, 0.06R at 1 kHz and 0.07R at 100 Hz. This was with an ESR of 0.1 ohms for the input source.
I tried adding capacitance from point A to point B, and from point C to point D, but it had no noticeable effect.
The circuit will work from 12V to 36V. An output current of about 100 mA seems to work pretty well for preventing crossover problems when the direction of the output current changes. This is adjusted with R6, which actually needs to be a 2k trimpot, not a fixed resistor as shown. Connect to the wiper and the fully clockwise end, and turn it fully anticlockwise before powering up the circuit. Then measure the voltage between points E and F and adjust R6 to get 66 mV. After adjusting R6, wait ten minutes for the heatsink temperature to stabilise, then readjust and repeat.
The op-amp can be any general purpose device, even a 741 should be OK. Output loading on the op-amp is around 10 mA.
Any other specific suggestions anyone?