Visibility timeout is an Amazon SQS feature that is there specifically for stateless distributed systems. The timeout is there to support a form of pessimistic locking on the message, such that the message is redelivered if a client that has received a message does not respond sufficiently quickly or dies. This is necessary as there (after a quick browse through the docs) is no persistent connection to the messaging service, and therefore the service does not know when the client has gone away. Message delivery is stateless.
JMS works on a different basis (http://www.novell.com/documentation/extend52/Docs/help/MP/jms/concepts/details.html). The broker knows the state of live client connections (it is stateful), working off that information to prevent messages dispatched to those clients from being resent to others. When a client receives the message, it is acknowledged and subsequently removed from the broker. If the client sends a poison-ack on failure, or disconnects before acknowledging, the message is redelivered to another client.
Since JMS connections are stateful, there is no need for a pessimistic locking mechanism like visibility timeout.