Basically, yes, you won't get your desired results using your DNS server. The reason is that dyndns.org's nameserver is answering all DNS requests for your domain name and pointing them to your external IP. It knows nothing of your windows server, or the linux server for that matter, as it only knows your single IP. Your DNS server is not queried for anything coming to you from the outside, because dyndns's server is suppling the DNSing. Your DNS server can only function as an internal DNS server for your local network, in it's present form. Now if you had multiple IPs, then you could direct traffic via DNS. But you can not use an internal IP address for this purpose, like 192.168.0.2, because this is not a valid IP to the outside world.
You can however get around these issues by using a router, iptables for instance. At the router level you can direct all traffic on say port 80 to your apache server and traffic on port 81 to your internal windows server. You'll be stuck using different ports though, as I can't think of anyway to direct traffic on a single port, for a single external IP, to multiple servers. The downside is that in order to navigate to your server that's using the non-standard http port, users would have to append the port to the address in their browser, like
http://windows.mysite.com:81. Remember inside your LAN you can have as many IP addresses as you want and with a properly setup DNS server you can run as many servers as you want and you'll be able to resolve any of them, because each PC has it's own IP. But to the outside world, you only have 1 IP and therefore 1 port 80 and etc.
Something else you could do is just run the single Apache server and use a virtual domain for the 2nd site you now have on the windows server. Well actually, you'd need to switch them all to virtual domains, but anyway. Doing it that way, you can have apache load the proper website based on the hostname that was requested and you wouldn't need multiple IPs. This may be your best option, as Dyndns.org allows you to have multiple hostnames.
Simply put, it's not dyndns or your DNS server that's holding you back. It wouldn't matter if you registered a domain and ran your own DNS server, skipping dyndns altogether. You're still stuck with a single IP address as far as the outside world is concerned. And it's the IP address that ultimately decides which computer is called upon.