Time.sleep() Как поставить значение пользователя?
рекомендую использовать asyncio.sleep чтобы не стопить всего бота
А что значит 1 лошадь5 лошадь
kb2 = types.InlineKeyboardButton('1 horse', callback_data = '1h')
      kb3 = types.InlineKeyboardButton('5 horse', callback_data = '10h')

def inline (call):
  if call.message:
    if call.data == '10':
      time.sleep(10)
Ты так остановишь всего бота. Необходимо создать базу, а в неё записывать юзер, время старта паузы, длинна паузы.
А вторым циклом сравнивать нынешнее время с данными из базы. И в результате небольшой математики отпрвлять сообщение юзеру из базы внужное время. И работать это будет на компе или впс. Бесплатные хостинги или не запустят код или за пару часов потратишь лимит на день.

Вот пример двух потоков в боте:
import telebot
import time
import threading
API_TOKEN = '11111111111111111111111111111111'
class my_bot(telebot.TeleBot):
    def loop_poop(self):
        while True:
            print(time.ctime())
            time.sleep(1)

    def start_action(self):
        thread = threading.Thread(target=self.loop_poop)
        thread.start()

bot = my_bot(token = API_TOKEN, threaded=False)

@bot.message_handler(commands=['start'])
def wellcome(message):
    if message.chat.type == 'private':
        bot.send_message(message.chat.id,'Hello')
bot.start_action()
bot.polling()