This week's book giveaways are in the Refactoring and Agile forums. We're giving away four copies each of Re-engineering Legacy Software and Docker in Action and have the authors on-line! See this thread and this one for details.
You would need to use a single instance of a message driven bean, so yes a Singleton MDB. You can usually control the number of instances via your server, though the need to use a single instance usually indicates an MDB is perhaps not the right choice.
You could with change the logic of your application so ordering is less important, or use an old-fashioned MessageListener (i.e. not an EJB) which will guarantee sequential processing of messages at the expense of scalability. You could also look at more sophisticated JMS implementations (such as ActiveMQ) which could give you more control or grouping and ordering messages.