It is possible to introduce a delay using threads (as Benproductions1 stated), but the real question is what do you want to do inside the method you want to invoke. It will be executed on another thread, so no Unity specific stuff will be allowed (no GUI, no Instantiate, etc.)
But if you add UnityEngine.GameObject.CreatePrimitive(PrimitiveType.Cube) to the Test method, it will fail. That’s because Test method will not be running on main thread. So if you want something like this, you have to look for another solution.
Additionally, this won’t work in all cases - for example, in Win8 application, you’d have to change this completely, because Thread.Sleep is not supported.
EDIT: of course you can skip Action t declaration and just call Test() instead of t()…
Action t = Test;
InvokeDelegate(t,3); // invoke in 3 seconds
If another non MonoBehaviour class should be able to use this, make the MonoBehaviour which contains the coroutine a singleton.
edit I finally put my CoroutineHelper package on the wiki (the polishing took hours :D). It provides several quite useful methods to run a delegate different ways.
Here’s the example scene that’s included in the package. This whole example just uses the Start method of one script and everything else is created within the method itself using closures and my coroutine helper pack.