Way to limit CPU speed to prevent temperature spikes?

It's not practical, but that model of MacBook Pro will run the CPU lower if the battery is disconnected since it can't count on the battery to work as a capacitor and the CPU/GPU can over draw the power supply.

Also - you could try gfxCardStatus to shift to the lower power GPU to reduce that source of heat.

If you are still running Snow Leopard, there are some CHUD tools in the performance testing folder of Xcode that let you to disable cores on processors which would let the system get less work down and generate substantially less heat. I don't know of a program to do this on Lion as the latest Lion build of Xcode didn't ship with the CHUD tools.