To calculate the bandwidth in use you must use the NetworkInterface class in the System.Net.NetworkInformatio namespace, and calculate it like this:-
IPv4InterfaceStatistics stats = NetworkInterface.GetAllNetworkInterfaces()[0].GetIPv4Statistics();
int bytesSentSpeed = 0;
int bytesReceivedSpeed = 0;
bytesSentSpeed = (int)(stats.BytesSent - bytesSentSpeed) / 1024;
bytesReceivedSpeed = (int)(stats.BytesReceived - bytesReceivedSpeed) / 1024;
AS far as limiting the bandwidth, I don't think it is possible in C#.
Hope this helps