Can I protect multi-threaded applications?

Yes. Some protection mechanism rely on sequential behavior, others do not. The user must give correct behavior information to the protection tool, so that only valid mechanisms are used. In fact some of the more secure protection tests can make explicit use of the knowledge of the threading. Unless explicitly disabled, the protection tool will make use of threads even for a previously single threaded application.