Leaving aside the madness of this (although I must admit it's difficult)... how **exactly** do you intend to define "can access the material for 4 hours" as this is critical?
If it's a case of....
- you log on, time is recorded
- now every time a page is loaded the time is checked.
- you are only permitted access until logintime + 4 hours has elapsed
- at this point access is blocked
- access is reset after logintime + 24 hours.
That could be achieved reasonably straightforwardly with a plugin of some sort - I think I would try to do this by trapping some common event or some existing hook (would need to have a think) rather than hacking core.
If, on the other hand, you are proposing that old chestnut of somehow measuring 'engagement time' then you are on your own because that really is crazy talk.
I've just noticed that I've duplicated what Mike asked. Well, there's your question.
As an aside, I'd be *really* interested to know the underlying thinking behind this requirement?