Thread.Sleep заставляет вызывающего the Sleep в течение X времени.Если этот поток является внешним потоком (отвечающим за обработку сообщений), он действительно замораживает приложение, поскольку любое сообщение для обработки событий или перерисовки не будет обрабатываться до тех пор, пока поток не проснется снова и не получит возможность обработки сообщений.
Что вам нужно сделать, так это запланировать эту логику каждые 10 секунд.
Удалите таймер на форме и укажите, что он запускается каждые 10 секунд.В рамках события Tick назовите свое настраиваемое действие.