As a starting point I'll write up what I found about these functions before.  I'm hoping someone will take a better look at them and will write a more complete answer.

----

Spelunking in version 8,

    Internal`AddPeriodical[Print["boo!"], 3]

Now you get a `boo!` every 3 seconds.

    Internal`Periodicals[]

    (* ==> {Print["boo!"]} *)

Now do

    Internal`RemovePeriodical[Print["boo!"]]

to stop it.

    Internal`Periodicals[]

    (* ==> {} *)

Note that `AddPeriodical` and `RemovePeriodical` have `HoldFirst`.

``Internal`$ThisPeriodical`` seems to be undefined during normal evaluations, while it is set to the currently executing periodical (wrapped in `HoldForm`) when a periodical is being executed.


Most (all?) of the version 8 functionality seems to be implementable in terms of these, provided that they work the same way in version 7 as in 8 (which I cannot test).