When you type an URL in a browser, unless you specify the port explicitly, the browser will assume port 80 (unless the path is HTTPS, in which case port 443 is assumed). Technically any URL can be rewritten to include :80 port directive. It is just redundant.
On the server side there can only be one service listening at port 80. So, no, you can not have both IIS and Apache accepting connections without one of the using another port than 80.
The solution...
What is typically done in this situation is for one webserver or the other (usually Apache since this is simple to configure in it) is set up on port 80 and it is responsible for acting as a front end for the other server. I.e. it passes certain requests (based on hostname, path or some other configuration) on to the other server.
I do this extensively where Apache serves as a front-end and directs requests to multiple Tomcat servers.
The Apache configuration you use for this is called "ProxyPass" and, as the name suggests, Apache is simply acting as an intermediary and passing the traffic on to another server for those VirtualHosts or Locations that are specified. For other hosts or paths Apache can still serve its own content directly.
More info here: https://httpd.apache.org/docs/2.2/mod/mod_proxy.html