I think I'm on the right track but now quite there. Names have been changed to protect the not so innocent. Wildcard is on at dyndns.org. Exerpts from httpd.conf files from both machines.
#httpd.conf machine router points to
# lots of stuff omitted above here
NameVirtualHost *
<VirtualHost *>
DocumentRoot /var/www/htdocs
ServerName whatever.dyndns.org
</VirtualHost>
<VirtualHost *>
ServerName machine2.whatever.dyndns.org
Redirect /
http://192.168.1.104/
</VirtualHost>
#the machine with internal IP 192.168.0.4
NameVirtualHost *
<VirtualHost *>
DocumentRoot /var/www/htdocs
ServerName machine2.whatever.dyndns.org
</VirtualHost>
It will redirect machine2.whatever.dyndns.org to the right machine, but once I click a link then I will get a 192.168.1.104 url.