We achieve this in Teamcity by using Microsoft Web Deploy. It's a service you install on the web server, you setup your site for web deploy which creates a username and password. If you use Azure Web Apps then this is already installed and setup and the details are available in your publish profile.
There is no native Teamcity build runner for it but you just create a CMD step that calls the msdeploy.exe in Teamcity and pass in the connection details and all the required parameters. Web deploy will only sync the changes based on timestamp or you can use checksum. You can exclude folders like media libraries using skip rules as well as files like robots.txt.
I hope that's enough to get you started and in the right direction.