Using a realtime web server such as Tornado - yes. TornadIO looks like a good solution since it'll use socket.io which has fallback options for older browsers.
The Wikipedia entry on the C10k issues provides a list of servers that have resolved this problem:
A few web servers have been developed to counter the C10K problem:
- nginx, which relies on an event-driven (asynchronous) architecture, instead of threads, to handle requests (WordPress.com uses nginx to solve the C10K problem)
- Lighttpd, which relies on an asynchronous architecture to handle requests
- Cherokee, a lightweight web server
- Tornado, a non-blocking web server and web application framework written in Python
- Apache Deft, asynchronous, non-blocking web server running on the JVM
- JBoss Netty, a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients
- EventMachine, an asynchronous, non-blocking web server running on Ruby EventMachine
- Yaws, a web server written in Erlang; profiting from Erlang's extremely lightweight processes.
- Medusa, a non-blocking web server library written in Python
As you'll see, Tornado is listed.
Beyond this your question is potentially more about horizontal scaling than it is about how to achieve server to client notifications.
Depending on which realtime server solution you choose this might never become an issues. For example, a single instance of Caplin System's Liberator can achieve a lot more than 10,000 persistent connections.