I am creating a software application that is able to update itself. After the start, the application checks if there are updates avaiable, download those files (assemblies),
Well, Windows does allow you to rename the respective files even though they are in use. So you could rename to updated files, replace them with the new version and restart the application.
I guess you won't be able to solve this without changing the update mechanism.