Listening to all transactions of the Bitcoin network I searched with all terms I could think of, but could not find anything in direction that helps me.

In the context of a research project, I am trying to listen to all transactions that are broadcasted over the Bitcoin network. So we are especially interested in transactions, that will not occur in the blockchain later (e.g. got "lost", took very  long to get accepted, double spent, etc.).

I know of bitcoind, but the list of transactions is rather pull-oriented, whereby I'd like to have something like a callback, that informs me of a new transaction.

Can anybody recommend any software/libs/projects here?

PS: all I intend to do is read-only, so there does not have to be any wallet-support etc. I just like to get a deeper view into how the Bitcoin network actually works.
You can do this using BitcoinJ by implementing the PeerEventListener interface.

The OnTransaction will be called every time a new Transaction is broadcast out and received from a Peer.