I know you can map virtual hosts to different ports using different sites like examlple1.com and example2.com - that's just in vhosts it's pretty easy.
Listen 80
Listen 8080
NameVirtualHost 172.20.30.40:80
NameVirtualHost 172.20.30.40:8080
<VirtualHost 172.20.30.40:80>
ServerName www.example1.com
DocumentRoot /www/domain-80
</VirtualHost>
<VirtualHost 172.20.30.40:8080>
ServerName www.example1.com
DocumentRoot /www/domain-8080
</VirtualHost>
<VirtualHost 172.20.30.40:80>
ServerName www.example2.org
DocumentRoot /www/otherdomain-80
</VirtualHost>
<VirtualHost 172.20.30.40:8080>
ServerName www.example2.org
DocumentRoot /www/otherdomain-8080
</VirtualHost>
But if you want to map a subdirectory to a different port I don't think you can do that without URL Rewriting on the backend so they didn't know it was happening - it wouldn't be very clean. You could do it relatively easily if you made it a subdomain like map.example.com