The FileInfo.CopyTo is basically a wrapper around the Win32 API call “CopyFile” in the kernel32.dll. This method does not support progress callback.
However, the CopyFileEx method does, and you can write your own .NET wrapper around it in a few minutes, like it is described here:
http://www.pinvoke.net/default.aspx/kernel32.CopyFileEx