You can not have two services offered on the same ip and port numbers.
On the same server, different services (IIS and Apache) need a unique IP/Port combination.
1) IIS might be binding to all ips on port 80. This has been the standard behavior of IIS since many years. So to run Apache with IIS, you first need to make sure IIS does not bind (i.e. listen) on all ips. The following article will help you disable IIS 6 from automatically binding to all ips on the Windows 2003 Server.
Before IIS6 (i.e IIS5), you simply had to set the metabase property "DisableSocketPooling"
to true (and that was it).
For details on doing this see: Disable socket pooling on IIS5
1) Open a command prompt and make sure you are in the X:\Inetpub\Adminscripts folder (where X is the IIS installation drive).
2) From that folder run:
cscript adsutil.vbs set w3svc/disablesocketpooling true
The command replies as follows: