The harmonics of the 24kHz do little except draw some capacitive current. You can limit them with a series resistor, or resonate the piezo with a series inductor and really reduce the harmonics. I doubt there is a good reason to produce a pure sine wave. A 555 timer produced square wave may be good enough.
10x frequency square wave oscillator, 74HC4017 counter, ten resistors, and a low-pass filter. Select the ten resistors to make a sine wave approximation, and the low pass filter doesn't have to be nearly as good as above.
Wien-bridge oscillator with dual-gain diode limiting (web search for it).
Control systems and communications consulting
If you can live with low level harmonics, you could use a Baxandall class-D oscillator, which has the advantage of being remarkably efficient, if your piezoelectric transducer looks more like a capacitor than a resistor (that is lightly damped rather than heavily damped by medium into which you are driving your ultrasound).
I posted a discussion of the circuit on my web-site some time ago
The piezo that I am working with is an "in air", ie, it is built for in the air use. No specs as it was a bargain from Allelectronics. Eventually, though, I will be working with an underwater 24khz transducer (PZT) to transmit a 24khz carrier and digital modulation across the depths of Boston harbor. I am practicing with the "in air" model. You are right, a square wave from the 555 works OK, but my understanding of piezo is that it expands and contracts as the electric field across it changes, so to maximize the performance, a sine wave would probably be better. The voltage I am using right now is 12Vpk, but I know it can go up to 20Vrms, as most of them can. I know because I tried using sine waves from my function generator, and a power tranny with a cap (trial and error for the best output signal), and when I cranked the supply up just over 28Vpk, it made a popping sound, and some smoke was let out, and then it didn't work anymore. I have no specs yet on the underwater transducer that I will be using as I have not decided which company to go with. They are difficult to find. Airmar makes them, and a company called sensortech up in Canada makes them also.
Actually, I am using the mpy634 multiplier chip (Burr Brown, now TI) and a 555 generated carrier, and the modulation is coming from a function generator meant to simulate audio data. This will have to be a portable application eventually, and the underwater transducers normally dissipate a couple of hundred watts (low duty cycle though). It works ok, but I would like to maximize the performance of the eventual instrument.
Then you can lock the 555 very close to the LC resonance by taping the piezo voltage with a high impedance RC low pass filter (say, 100k, 100pF) and connect the capacitor voltage to trigger and threshold. Pick the inductor to set the frequency. Something around a few milli henries should work.
The main problem will be driving whatever transducer you select. You will need to match the transducer to the driving amplifier. For maximum efficiency, the driving impedance needs to be the conjugate of the load.
You will need to measure the transducer characteristics under water and driven at the carrier frequency and waveform you will use.
And a much better chance of melting the switching transistor. "Much better efficiency" is an intersting claim - the Baxandall circuit typically offers better than 90% efficiency - Jim Williams claims 92% in
A resonant driver isn't all that appropriate in that context.