On client side, you can add custom header using XMLHttpRequest.setRequestHeader
.For example:
XMLHttpRequest.setRequestHeader('Custom', 'MyHeader');
On server side:
[WebMethod]
public string helloworld()
{
string customHeader = HttpContext.Current.Request.Header["Custom"];
return "Hello world" + customHeader;
}