The way multiple return values are implemented by the current Go suite (gc) the return values are passed the same way parameters are, which are on stack. There is no memory allocation at that point (Assuming the stack size was sufficient, which is another matter). Considering the out parameter in C# would need to be allocated, I'd say the Go approach would be faster but not because of the approach in itself but by the fact that non-primitive data types are heap allocated in C# whereas in Go the programmer can choose to keep it on stack.
If we consider simply the parameter passing versus the multiple return value, the performance impact would be non-existant since both represent a push/pop on the stack.