This is not possible via DNS since you cannot force the DNS client to talk to your DNS server. It may just use the cached record it already has. If you could force it to query, you might just as well return it the address of the new server.
Instead, you can configure your Server A to respond with a redirect to Server B for all requests. I'm, not familiar with Windows Server, but an Apache server could use the mod_rewrite module for this.
Another option is to install a reverse-proxy in Server A, replacing your webserver, that accepts all requests and fetches the pages from Server B. Server A then returns the answer to the client. We're using this exact solution to solve the same problem you're having. We wanted zero downtime while moving hundreds of sites to a new server.
You could easily set up an Nginx server or something similar as a reverse-proxy. Install it on an alternate port like 8000 and set it up to reverse-proxy to Server B. Test with http://ServerA:8000/ if the proxying works. Turn off the webserver on A, freeing port 80, and change the proxy to listen on port 80. It will now serve all incoming requests via Server B. After a while Server A will receive no more traffic, once the DNS records TTL expires and all clients directly query Server B.