Вы можете попробовать использовать потоки библиотеки и запустить два потока одновременно.
Здесь я оставляю код.
from tkinter import *
from tkinter.ttk import *
from time import sleep
import threading
from threading import Thread
root = Tk()
root.geometry('900x900')
def start():
global flag
for count in range(100):
if flag:break
print(flag)
Label(root,text='hi').pack()
sleep(1)
def stop():
global flag
flag=True
print(flag)
if __name__=='__main__':
flag=False
thread=[]
Button(root,text='stop',command=lambda: Thread(target=stop).start()).pack()
Button(root,text='start',command=lambda: Thread(target=start).start()).pack()
root.mainloop()