This process could be scripted somehow, but as I didn't need hundreds of contacts, I just created them one by one. The described process is, however, optimized, taking only about 20 seconds per person.
First, open GarageBand and create a loop of desired length. I chose just about six bars. Then place your favorite ringtone sound (I used one from GarageBand's Library, found in Sound Effects » Work/Home » Cell Phone Ringing, and boosted its volume a bit) and place it at the second bar.
- Copy the person's name in Address Book.
- Paste it to Terminal as part of this command: say -o ~/Desktop/Output.aiff [paste person's name here]. Note that the Up Arrow key reveals the last command used, so later you can backspace the previous name and paste a new one.
- Drag the Output file on your desktop to GarageBand on the first bar of your composition.
- In GarageBand, choose File » Save As..., and again paste person's name as the filename (it's not important where it's saved).
- Then select Share » Send Ringtone To iTunes.
Now, I didn't spend much time on this at all, and it could be in the next version of iPhone software (I did submit it as an enhancement request) -- perhaps activated by a setting in the iPhone preferences. We'll soon find out, I guess.

