Is there a communication protocol that ensures that both parties can read the other one's message at the same time (or at the very least, only after sending their own message, thus no party can read a message and then send their own).
I'm not sure exactly what you're trying to achieve (formulating the goal precisely seems tricky or unclear to me), but you might be interested in reading about "fair exchange" in the cryptographic literature. See, e.g., https://crypto.stackexchange.com/q/8333/351. The short version you're likely to find is that there are no protocols with strong guarantees (without making strong assumptions), but without knowing more context, it's hard to know whether there might be something that is good enough for your needs.
Commitment schemes are easier to implement than "fair exchange", but make weaker guarantees -- typically they can be designed so two parties send some initial messages (where Alice has initial message A and Bob has initial message B) to guarantee that no party can read someone's plaintext and then pretend they composed a message before reading that plaintext, when that message was actually composed only after reading the other's plaintext.