How to create a theme that can be updated by people using the theme on their site

This happens automatically if you use wordpress.org and push updates through SVN.

If you want to use your own repository you can as well, using the HTTP API and checking for updates, but this is to complex to answer so you will have to do some research, such as Updates for a private plugin?, worth checking out the WordPress Plugin Development book as it has a chapter covering this topic and of course Google.