Use Timer.
static void Main(string[] args)
{
    Timer timer = new System.Threading.Timer((e) =>
    {
        Console.WriteLine("Now the following code will be repeated over and over");
    }, null, 0, (int)TimeSpan.FromSeconds(5).TotalMilliseconds);
    Console.Read();
}
Here I have called Console.WriteLine multiple times, you can write your code block instead of it.
You can use Thread.Sleep(5000); But again its also external class according to the OP.
But I would suggest a better solution using Async and Await. One more thing you should have a termination condition, so that you dont produce an infinite call to avoid unnecessary memory consumption. 
public static async Task RepeatActionEveryInterval(Action action, TimeSpan interval, CancellationToken cancelToken)
{
    while (true)
    {
        action();
        Task task = Task.Delay(interval, cancelToken);
        try
        {
            await task;
        }
        catch (TaskCanceledException)
        {
            return;
        }
    }
}
static void Main(string[] args)
{
    CancellationTokenSource cancelToken = new CancellationTokenSource(TimeSpan.FromSeconds(50));
    Console.WriteLine("Start");
    RepeatActionEveryInterval(() => Console.WriteLine("Repeating Code"), TimeSpan.FromSeconds(5), cancelToken.Token).Wait();
    Console.WriteLine("End");
    Console.Read();
}
In this example this code will write till 50 seconds.