Is compiling the same C# program twice guaranteed to produce the same binary output?
No.
Well, that was an easy blog to write.
Maybe some more background might be useful.
Eric goes on to explain the various reasons why compiling the same source code twice won't produce an identical binary file. In addition to having to generate unique names for various compiler artefacts, the compiler generates and inserts a unique GUID into the meta-data of each module, leading to the conclusion that:
"the C# compiler by design never produces the same binary twice".
In fact, your question sounds almost identical to the situation that Eric discusses at the end of his post.