I see that I have to set up a timer:TTimer, and I guess I initialize it in the PluginStart procedure (add interval, enable it...etc).
That's absolutely correct. And don't forget the "timer := TTimer.Create(AOwner) at the beginning.
And in PluginFinalize, you have to free it by FreeAndNil(timer) (you have to add SysUtils to the uses-block)
I add a timer as a variable globally?
That's correct, too.
Should I inherit my "onTimer" event handler procedure from something
No, that's quite easy: Just declare a procedure in the given format, in this case: procedure Blablabla(Sender: TObject). The parameter Sender tells you, which object did call this procedure, but in your case, this information is unneccessary.
Then, while setting up timer, you add this handler procedure by setting timer.OnTimer := Blablabla.