Assuming both routers are receiving connections from the Internet (and not a subset of the Internet that you can identify in a static route) Windows can't do what you want.
If your incoming connections on "Router2" come from a particular subnet then just add a static route to that subnet via "Router2" and you're done.
Assuming you're looking to service connections from the Internet on both connections: What you're looking for is policy-based routing functionality that Windows just doesn't have. When Windows receives a new connection attempt from "Router2" it will respond via the default gateway. Windows doesn't "care" that the connection "came from" the "Router2" router.
To do what you're looking for you're going to need to put a router in front of the Windows Server computer that supports this functionality. A Linux machine would do it, as would any major-label embedded router (Cisco, Juniper, etc).
Just putting a second NIC on the machine doesn't help. Windows will still respond to its default gateway.
That's the key point you need to concentrate on. Windows can receive new connections from any number of sources, but it's going to respond back to off-subnet hosts through its default gateway.
As Zoredache points out you could configure your routers to source-address-NAT the incoming connections, at which point Windows would "see" the connections as coming from the routers' IP addresses and would respond to each router individually. You lose any ability to log the real source addresses of incoming connections. It would be ugly, but it would work.
Finally, I'll echo what Zoredache says: You're on an ESXi box-- deploy a Linux router VM between the Windows machine and the Internet and take care of it there.