Yes, It’s now possible to DualBoot Android OS on iPhone. Thanks to the work by Linux on the iPhone Project and taranfx, we are now seeing it running with minor glitches.
Download the Image from one of the choices: Download via torrent | Download via SourceForge

Important: Currently it works only with iPhone 2g (original iPhone) but it should soon become pretty easy to port forward to the iPhone 3G. Apparently, The 3GS would take more work.

Instructions – iDroid: Android on your iPhone 2g

Step 1. Jailbreak your iPhone.
Step 2. Unzip the files into a location, say desktop. and replace two files (android.img.gz and system.img) in the prebuilt directory using the files from this archive. However, if your installation fails, you should create these 2 files using the process outlined here. [Why? Due to licensing issues, certain files will have to be manually copied]

Step 3. Copy everything from “prebuilt” (i.e. ramdisk.img, system.img, ramdisk.img, userdata.img, cache.img, android.img.gz, and zImage) into “/private/var” on the iPhone using sftp client like Filezilla, or Winscp (windows).
Step 4. Installing OpeniBoot.
Note: This step requires you to have a running Linux. If you happen to be a Windows users, you can use Ubuntu Live CD and boot with it (or use it in Virtualbox). Also, make sure you have “libusb-1.0-0″ installed. If not, get it from Synaptics package manager. (libusb is installed by default on regular installations, not on LIVE CDs)

1. Put your iPhone into recovery Mode ( Turn the device completely off and disconnect it from cable/dock. Hold down the home button. While holding down the home button connect to a computer with a cable or dock. Keep holding down the home button until you see a connect-to-iTunes screen. You are now in recovery mode)
2. Navigate to the directory where you unzipped the tar.gz file and then to “utils” directory. i.e. “iDroid > utils”
3. Copy “loadibec“, “openiboot.img3″ and “oibc” to your home folder. (You can know your home directory using command “cd ~“) and “openiboot.img3” to “utils” directoy of the unzipped files
4. Open Terminal and run “sudo ./loadibec openiboot.img3“. Doing this will show up openiBoot menu on your iPhone.
5. Press the Lock button to select the openiboot console, then press the Home button.
6. Run ”sudo ./oibc“. Terminal should now show the same lines of text that’s displayed on your phone’s screen.
7. Type “install“. Once done, type “reboot” when you see message “Refreshed Image List” (look at the screenshot below)
8. The phone would boot back into openiboot. Select Console with Power button and then hold the Home button for more than two seconds to start booting Android.

Running iPhone OS Again

1. Reboot your iPhone and openiBoot menu would appear again.
2. Press the Lock (Power) button to highlight the Console option.
3. Press and hold the Home button for 2 to 3 seconds. This will boot Android.