This requires root privileges. To set the max clockspeed to 1.1GHz, run "1100" from the adb shell or terminal. Make sure the permissions are set to 755, ie: "chmod 755 1100" in the terminal in the directory you have placed the executable. (I just placed them both in /data/local/)
To reset it back to 1GHz, run "1000", same permissions as before.
To try out 1.2GHz, use "1200". 1.3GHz, use "1300".
It doesn't survive a reboot, so it won't do much damage. That being said, I take no responsibility whatsoever for any damage done to your phone, this is extremely experimental. I also take no credit for this, yang.felix was the one who figured out how to do this first:
Now, the real fun part is making this persist a reboot, and notify the kernel about the changes so that overclocking/underclocking can be easily performed with SetCPU or other apps.
**** EDIT ****
I removed the 1400 and 1500 binaries because in layman's terms... I screwed up. I don't have much time to work on this tonight but I'll try and put something better up; in the meantime, I removed the binaries because they are useless. I'm suspicious that the 1300 binary is destined to fail as well but apparently some of you out there are able to execute it without an immediate reboot so maybe it is a voltage problem. I'll keep you all posted.
**** N00B INSTRUCTIONS ****
Here's how I do it. If you don't already have them, I suggest downloading the following from the Market: "SetCPU", "Root Explorer" and "Better Terminal Emulator". I bought them; the $5 or so was well spent as these three apps are probably ones that I use the most. If you don't want to pay, you can find SetCPU here on xda-developers if you search for it; Root Explorer you'll have to pony up the $1.99 or whatever it is, Better Terminal Emulator you can do without if you look for "Terminal Emulator" in the Market.
Connect your phone via USB to your PC, select from the drop-down in your status bar "USB Storage" or whatever it says, and browse to your phone on your PC. Unzip the attachment from the first post to the root of your sdcard, ie: don't unzip it into any folders after browsing to your phone on your PC, just put them in the root of the drive. You can put them in whatever folder you like but if you want to keep it simple, don't bother putting them in a random folder unless you know what you're doing.
First, open up SetCPU and slide the sliders for Maximum and Minimum all the way to 1000. You can leave everything else alone, after sliding the bars just exit the app. This step is important so don't skip it.
Open Root Explorer. Navigate to "/system/xbin". Press the button at the top that says "Mount RW". This will allow you to save the binaries in this folder as it is normally mounted as read-only.
Now, open Better Terminal Emulator (or whichever terminal program you like, or even use adb if you are so inclined... although if you know how to use adb the following probably goes without saying) and assuming you followed my instructions earlier and saved the files "1000", "1100" and "1200" to the root of your sdcard, type the following commands in, pushing Enter/Return after each one:
su (Click on Allow) cd /sdcard cp 1000 /system/xbin/ cp 1100 /system/xbin/ cp 1200 /system/xbin/ cd /system/xbin chmod 755 1000 chmod 755 1100 chmod 755 1200
In order to run "1000", simply type:
To run "1100", you guessed it: