Wouldn't it be a mistake to set it on the thread?
Both HttpContext.Current.User and Thread.CurrentPrincipal are set with an IClaimsPrincipal (the same instance in fact)