can an application have two separate enclaves? Each running their code in separate concurrent threads? Furthermore, can this two enclave share a variable or the only communication way is LocalAttestation/Seal Data?
for the first two questions, the answer is yes. As for the last one, this would go against the purpose of SGX, which is to provide enclaves that are completely isolated from anything else. Therefore, no.
Running multiple enclaves in an application is definitely available but please remember that Enclave resource is limited and there is performance implication.
If you want to share a secret between two enclaves, you need to build a secure channel between them. A common technique is s leverage Diffie Hellman key exchange protocol to build one.