The updates would have to be instantaneous. Is this even possible, with dns caching and all?
No, it's not possible with DNS. DNS records are served with a Time To Live (TTL), which specifies the amount of time caches may use the record without checking back with the authoritative DNS server. And for various reasons, DNS TTLs can't effectively be less than 10 minutes. DNS round robing is not the solution to load balancing, at least not if you need service uptime. See fx this older question by Jeff Atwood.
You can use 3rd party DNS services which combines DNS Round Robin with proactive monitoring of the servers, and automatically remove dead servers from DNS. It's not a good solution, but it can be good enough for less important sites, and it's trivial to set up using fx DNSMadeEasy or EdgeDirector.
The industry standard way to handle webserver availability is a Layer 4 or Layer 7 load balancer in front of the webservers.
web service on amazon ec2, distributed across many instances, how can I make it so a single domain name can be used to access the entire pool of servers
Amazon offers a plug'n'play service for this, called Amazon Elastic Load Balancing. Basically it's a managed service from Amazon, which sets up a Layer 7 (HTTP) or Layer 4 (TCP) load balancer in front of your EC2 web servers.
Another common option is to set up an EC2 instance with a L7 load balancer such as nginx, HAProxy, Apsis Pound, Apache 2.2, Zeus Load Balancer or something else (there are several). But if you go this route, you will need to manage the OS + load balancing software yourself, and consider how to make the EC2 load balancer instance itself sufficiently highly available.