Without rebooting? Probably not. If you tell Windows to delete a file and that file is still in use by another process then it can get into a state where the file is permanently locked until reboot. Windows Explorer is notorious for this in my experience.
In theory you could use Process Explorer
or perhaps Handles
to search for any running processes that have a handle to this file and then try to stop the process but in my experience some of those processes are system processes and cannot be terminated, hence a reboot is needed.
Is it a really big deal if the file remains around until a reboot? What most uninstall code does is attempt to delete the file and, if that fails, add the file to the list of files to be removed at next reboot. The file remains around until the next reboot and is then removed early in the boot process. The downside is that you cannot put a new copy of the file in that same location but this might not be an issue for you.