Not really. Creating a virtual port driver or network redirector requires native code. However...
You can capture data by setting up a network print port and implementing the server side in .NET. For example, LPR will require you to create a TCP socket server, and this is entirely possible in C #.
I don't know any existing C # implementation, but you could learn a lot from the p910nd source code .