Use FTimerManager outside UE class

Use a Lambda. Besides that you need to set looping to true if you want it to fire every 2 seconds

world = w;
FTimerDelegate del;
del.BindLambda([this] {
	// Logic here or call the Function (this needs to be Captured like in this example)
	OnTick();
});
world->GetTimerManager().SetTimer(TimerHandle, del, 2, true);