Não se trata disso... Uma reforma estrutural seria necessária, para deixar a aplicação ThreadSafe...
Não é criada uma nova instância dos componentes do ACBr a cada Thread...
Embora toda a execução de cada conexão ocorra dentro de uma chamada com Synchonize, o que causa o efeito de criar uma nova entrada no CallStack (Pilha)... é possível que as informações de uma thread, contaminem a outra...
Imagine o exemplo: duas Threads chamam o mesmo método: NFE.StatusServico... da maneira que está implementado (Synchonize), a última chamada irá congelar a primeira chamada, e ficará acima da pilha, após a ultima chamada ser executada por completo, a pilha retornará para a primeira chamada... mas nesse momento, as Propriedades do Componente ACBrNFe, foram alteradas pela execução da segunda chamada.. e o retorno da Primeira chamada poderá conter dados inválidos...