You can not host 2 websites on different web servers with only one external IP address (at least not without specific network devices that would support this).
As suggested by Robbe, you could simply host both websites on the same IIS web server, this would work by using host headers.
- both DNS names (e.g. www.a.com and www.b.com) will resolve to the same external IP address.
- Request will go to the same IIS web server (with a router you would need to enable port forwarding to internal IP)
- based on hostheader, either website a or website b will reply
If b must run on another server, you could set up an proxy (e.g. with Apache). The proxy must then be set up for both web sites, using virtual hosts. One would redirect to the local IIS webserver, while the other would redirect to the second webserver. To have Apache and IIS running, you need two IP addresses. IIS website on proxy server needs to run on another port than default.