Se me ocurre que sin usar el Timer podias hacer lo siguiente:
DateTime d1 = DateTime.Now;
DateTime d2 = DateTime.Now;
TimeSpan d = d2-d1;
bool time = d.Minutes>=20;
while(!time)
{
DateTime d2 = DateTime.Now;
TimeSpan d = d2-d1;
bool time = d.Minutes>=20;
}
Console.Writeline("Han pasado 20 minutos");
no se si funcionará,yo creo que si,
salu2!!!!!!!