Is it possible to extract the following data from the bitcoin ledger: (time, sender, amount, receiver)?
Something like that would be possible, you could run your own bitcoin node and query the data from that, or use an API from a site like blockchain.info, which provides transaction data. Here's an example of a transaction from blockchain.info:
Note that transactions do not have times encoded into them, the time such a site gives would just be the time that site received the transaction first.
the address can be used to approximate unique users? Is this correct?
This is not correct in general, while some users may reuse the same address for every transaction (one-to-one), other users generate new addresses for every transaction they receive, so there is a many-to-one relationship between addresses and users. In the more uncommon case, there are also multisignature addresses, which often involve more than one person approving any spends from that address, so that you sometimes have a one-to-many relationship between the address and the users. All addresses of that type start with a '3' or 'bc1' though. So its a lot more complicated to make assumptions about users than it is to just look at addresses.