If you only want to monitor connections try:
using System.Net.NetworkInformation;
...
var connections = IPGlobalProperties.GetIPGlobalProperties().GetActiveTcpConnections();
You'll need to call this periodically to catch new connections.
You could also use WinPCap to capture all network packets and extract source and destination IPs and ports from them.
If you want to control those connections you should use 'Packet Filtering API' available since Win2000. There are few articles here you can use to start:
Packet Filtering in .NET
Simple Packet - Filter Firewall
Developing Firewalls for Windows 2000/XP