HttpContext.Current доступен только для основного потока, новый поток, который создается из контроллера, будет иметь другой контекст.
Что вы можете сделать, это передать его в качестве параметра.
Вам потребуется изменить AnnounceAllEmployee для обработки нового параметра HttpContext; AnnounceAllEmployee(... , HttpContext hc)
HttpContext httpContext = HttpContext.Current;
Thread sendEmails = new Thread(() => AnnounceAllEmployee(Requisition_num, httpContext));
Это не приведет к клонированию http-контекста, а передаст его только по ссылке, следовательно, он не будет занимать больше памяти.
EDIT: кажется, что после выполнения запроса поскольку он передается по ссылке, httpcontext основного потока, к которому мы пытаемся получить доступ, вернет null для некоторых свойств.