Você pode fazer isso colocando algum daemon ouvindo a porta 80 que atuaria como um proxy. Um bom candidato a ser esse daemon é Nginx .
Você pode então ter vários Hosts Virtuais (um por domínio, ou vários se todos encaminharem para a mesma porta) com uma configuração como esta:
server {
listen 80;
server_name www.test.com;
location / {
proxy_pass http://127.0.0.1:8888/;
}
}
Se alguns domínios resolverem IPs diferentes (e máquinas diferentes), você poderá colocar um daemon Nginx em cada um deles com uma configuração semelhante.