1. Планировщик заданий, как уже написали выше
2. Скрипт всегда запущен, импорт datetime'а, проверка на datetime.datetime.now, если часы 20, остальное (мин, сек, доли сек) по нулям. В конце кусочка который выполняется регулярно поставить sleep (10000), чтобы точно настало 20:01 и он бы не выполнялся второй раз.