You'd need to get the port that the HTTP request is using on the client side, match that against the list of active outbound TCP connections on the machine and identify the process ID of the browser (e.g. via GetExtendedTcpTable). From there you could get the session ID of the process (e.g. by using Process.SessionId) and then look up the username associated with the session (e.g. by using WTSQuerySessionInformation or Cassia). Or you could call OpenProcess and GetSecurityInfo to get the user's SID from the process ID as this answer explains. This latter approach is probably better since there could be processes running as different users in a single session (e.g. using Run As).
That all seems like a real pain, though. Couldn't you just use Windows authentication in the browser?