As Lèse majesté notes in the comments, it's possible to do what you suggest, but it's probably easier (both in the short and in the long run) to just move everything over to the new host.
I'd suggest contacting your new webhost and asking for their help in arranging a smooth transfer. They should be able to give you instructions on how to move everything over with minimum fuss, and they may be able to take care of some things (such as the actual DNS handover) entirely on their end. Remember, they have a financial interest in helping you do this right.
In the comments, you imply that the new site will have a different structure than the old one. While it's certainly possible to just prepare the new site at the new host, and then change DNS to point to it, a smoother solution could be to do it in several steps:
Make an exact copy of the old site (which I assume is mainly static HTML) at the new host.
Change the DNS records to point to the new host. If done right, this step should be essentially invisible to users. Wait until the old DNS TTL has expired.
Set up the new site structure alongside the old one, but don't replace any of the old pages yet. (I assume your new URLs will generally not overlap with the old ones, except perhaps for the main page.) Test to see that the new system works and that all content that you want to keep has been copied to the new system. Of course, you can do this step even before steps 1 and 2 if you like.
Replace the old pages with 301 redirects to their closest equivalents in the new system.
Doing it this way has a few advantages: there's no period during the DNS changeover when some users will see the new site and some will see the old, and setting up the 301 redirects means that you won't break old links to the site and so won't lose visitors and search engine rank because of that.
As for e-mail, assuming that you set up the same mailboxes on the new host as existed on the old one, what should happen during the DNS changeover is that mail simply starts arriving in the new mailboxes insted of the old ones.
Your client may be able to continue accessing their old mailboxes even after the changeover: it depends on whether the server address configured in their e-mail client is something like
mail.oldhostingcompany.com (in which case everything will work as before, just no new mail will arrive in the old mailboxes) or something like
mail.sitename.com (in which case changing the DNS records for
sitename.com will affect the mailserver address too). You might be able to set their e-mail client to use an address of the former kind before the changeover, although the details will obviously vary between hosting companies. (If they're using webmail, it similarly depends on which type of hostname they're using to access the webmail app.)
Of course, your client should obviously back up all their e-mails before the changeover, just in case something goes wrong, and should definitely back them up after the changeover is complete (since they'll presumably want to close the old hosting account sooner or later). It's also technically possible to upload the old e-mails to the new server, although that may not be worth the trouble compared to just saving them in local mail folders on the client's own computer.
I'd also at least consider the possibility suggested by jflaflamme of setting up a third-party e-mail account (e.g. at Gmail) and configuring the new hosting to just forward all e-mails there. Really, it depends on how reliable and trustworthy you consider the new hosting company to be compared to Google, and whether you expect to be changing hosting companies again in the future. Personally, I'm happy to just let my hosting company store my e-mails, but there are advantages to doing it either way.