If Alice (sender) sends a private message embedded with public key of the Bob(recipient) through onion network, so in this key exchange, does Bob remains anonymous to Alice as Alice knows about the public key of Bob. So if we want to achieve mutual anonymity, how can we do that? Can we achieve mutual anonymity through this key exchange?
You could cheat and use different keys for each recipient. That would work assuming the recipients don't know each other (and cannot compare keys).
Mix networks are by design hard to trace so it depends on the network.
It is important to note that public key cryptography doesn't guarantee anonymity or privacy or protection from identification. It's not designed for it. It just protects a message. Tor has managed to do a decent job at protecting two parties who wish to talk to each other and is reasonably mature but mutual anonymity really depends on the (onion) network Alice and Bob are using - not on the PK scheme.
If Alice didn't know who Bob was before, she still doesn't. All she knows is that she communicated with someone who has the private key corresponding with that public key, which presumably is the reason Bob has a public key.