Как определить приоритет потока?
как ускорить работу этого потока чтоб он использовал все ресурсы процессора?
Повышение приоритета не ускорит работу потока который занимается вычислениями,  но понизит отзывчивость всех остальных потоков.
Чтобы ускорить нужно сначала понять что именно тормозит, а чтобы это понять нужно профилировать.
А уж когда станет понятно -- тогда и думать, что делать -- менять алгоритм, распараллеливать, использовать SIMD или что-нибудь ещё.
Ну только если 
CreateThread(0,0,&ThreadProc,0,0,thread);
SetThreadPriority(thread,HIGH_PRIORITY_CLASS);
В первом случае thread это указатель на область памяти куда вернется threadID, а во втором случае требуется указатель на HANDLE созданного потока. Правильнее:HANDLE ht = CreateThread(0,0,&ThreadProc,0,0,thread);
SetThreadPriority(ht, HIGH_PRIORITY_CLASS);