Does MSMQ supports this and how is it possible even if it's not
supported by design?
The MSMQ service does not have any built-in way to support duplex messaging.
In order to achieve this, you will need to code on both ends of the queued channel. However, this is generally complex at best.
The following link describes how to achieve this by using System.Messaging:
https://www.codeproject.com/Articles/999238/Efficient-Message-Correlation-in-MSMQ
It is based on using the CorrelationId header with the ReceiveByCorrelationId() operation, which is notoriously bad for performance reasons.
Another way of doing this is by using WCF, however, this still relies on a manual response using System.Messaging:
https://msdn.microsoft.com/en-us/library/ms751435(v=vs.110).aspx
A further approach uses WCF and a helper library called Duplex MSMQ:
https://www.codeproject.com/Articles/41907/WCF-Duplex-MSMQ
However, none of these methods is very nice and all introduce unwanted complexity.
I need confirmed delivery to a remote queue
I guess what we need to understand is what you mean by "confirmed". If you use a transactional queue, then this provides a guaranteed delivery semantic on a message transmission from one application to another.
If, on the other hand, you require a real-time response, then using message queuing is probably not the right technology for your purposes.
If you're forced to use MSMQ, then you could do worse than using a commercial product. I have used NServiceBus extensively, which uses MSMQ but adds powerful message exchange patterns such as request-reply. It is a pay-for product, but if you only require a single threaded operation, then you could use the free version.
What I needed was real-time response for success and fail messages..
If I understand this correctly, then your requirement is acknowledgement, which MSMQ does support. See:
https://msdn.microsoft.com/en-us/library/ms978430.aspx#bdadotnetasync2_topic4
https://msdn.microsoft.com/en-us/library/ms707129(v=vs.85).aspx