Well, you could do it with variables. All you need to do is start the timer like this once the resource is harvested:
@>Conditional Branch: Variable [XXXX: Timer] > 120
@>Do all the stuff to harvest the resource...
@>Control Variables: [XXXX: Timer] = 0
@>Control Switches: [YYYY: Hidden Timer] = ON
@>
: Branch End
Now make a parallel process common event triggered by the YYYY: Hidden Timer switch:
@>Wait: 60 frame(s)
@>Control Variables: [0XYZ: Timer] += 1
@>
The 120 in the first event is just the amount of time in seconds you wanted it to wait. So that would be two minutes. If you wanted it to be 7 minutes and 24 seconds, then it would be 444, and so on.
Depending on how many resources you have, it could get pretty bulky and tedious, but it shouldn't be too laggy.