To match your specification and found none. The problem might be that Windows doesn't have an easy way to report by program the specifics you are looking for.

The issue is that there may not be enough call for such a program (yet?) and therefore it hasn't been written. That the Windows API doesn't offer a hook to hang such a tool on easily will also mean it may be some time till you find someone writes it.

At http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx you see a tool I've used to sniff out what app is sending, receiving but no byte count. If you look at other applications you see see byte counts.

Here's the problem why you don't get what was sent by each program. The Windows API doesn't track it at that level. Your (yet to be created software) might guess that since programs alpha and beta were sending data at one time that it could be one or the other but may not attribute the data to exactly which one if they used the same port.

For now the tools are at a certain level which doesn't appear to be what you want. But here's what you can use.

The Sysinternal tools to see what's talking on what connection.
The various byte counter programs you found already.
The packet sniffer programs that could log every packet.

Maybe you could take all 3 softwares to get a picture of what you want to find out.
Bob