There was a question on http://forums.iis.net about having Apache and IIS7 on the same box. here are the instructions I tested on Vista RTM and Windows Server 2008 B3. This assumes you have two ip addresses on the box, 192.168.0.90 and 192.168.0.91. It can be any ip's.
1) Added or make sure your machine has two ip's
2) Open a command prompt
3) Type netsh
4) Type http
5) Type sho iplisten. It should be blank
6) Type add iplisten ipaddress=192.168.0.90
You should get IP address successfully added
7) Type sho iplisten again
It should sho 192.168.0.90 in the list
8) Type exit to get out of netsh
9) Type type netstat -an. See if you notice 192.168.0.90:80 in the list. If you see 0.0.0.0:80, do an iisreset
10) Download and install Apache ( I did it with 2.2.4)
11) Do a default install,
12) Open httpd.conf and adjust the ip listen to 192.168.0.91:80
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
12) Restart the Apache service. (for some reason the start / stop thing didn't work for me, I used net stop apache2 net start apache2.)
13) Type netstat -an
14) You should see 192.168.0.90:80 and 192.168.0.91:80. Open a browser and test both IP's to see if IIS7 and Apache come up.
15) Test restarting Apache service to see if it works after that.
16) Turn off Apache, browse IIS, turn of IIS, browse Apache. Test it every which way to see if it works.
Hope this helps