NDIS drivers are low-level. They have no understanding of usermode processes; by the time the packets hit NDIS, all process context is gone. Since your problem statement seems to care deeply about usermode process identity, an NDIS driver might not be the appropriate solution for the problem.
It sounds like you can use WFP to direct traffic to the appropriate interface. WFP is essentially a giant rule engine: there are input rules (like "process name is 'notepad.exe'" or "user is 'bob'") and output actions (like "reroute all traffic to network interface 42"). If you are lucky enough to be able to represent your problem with the built-in rules and actions, you might not even need to write any kernel code at all. (Think of all the time you'll save!)
If for some reason you cannot use WFP (perhaps you need to target Windows XP), then you should investigate writing a Winsock LSP. LSPs plug into the socket code within the target process, and can do some level of traffic manipulation.