One way around teh process monitoring is that you can do it your self by calling the APIs directly to determine the ports a process is using. To start with look at http://msdn.microsoft.com/en-us/library/aa365928(VS.85).aspx.
As for performance, any filtering you do will affect performance. You will get the fastest performance with no filtering. In a live capturing scenario this is important so you don't lose frames. If you are not dropping frames, which actually can only be indicated by NMCap and the UI, then you don't gain anything by doing the filtering later as you mentioned above.
You can increase the performance of filtering by narrowing down the parser set you use. So for instance, if you only need TCP to be parsed, you could remove all other referneces in TCP to upper level protocols. This will increase your parsing speed, but obvoiusly there is a limit based on your CPUs throughput and load. To perform this protocol "pruning" you'll have to experiement to find a parser set that compiles with out errors. But if you need help here, let us know.
Paul