C# events are dispatched on the same thread they are raised from, so it will be as fast as your computer can run it. There is no scheduler work at play, no waking up threads. The frequency question can't be answered accurately without testing it on your machine, and it does scale with your machine. The time spent raising events will be insignificant compared to the time you'll spend processing them.
Passing arguments to events is about the same as passing arguments to function calls, and the JIT decides the low-level calling convention. The worst-case scenario would be that each argument is passed on the stack.
If your design needs to be multithreaded, you'll need to pay attention to scheduler details and inter-thread communication much more than to events performance.
Finally, it strikes me as odd to me to use C# and be concerned with such low-level details. The definition of a real-time system is a system in which response time is guaranteed, and C# being garbage-collected, you can't make very strong guarantees about response time. If you're so worried about the cost of passing arguments to functions, I'd argue that you should look towards other languages in which you can actually control these details.