No pobierasz czas na początku, przed wykonaniem pętki sortującej, oraz podczas sortowania, czas można pobrac na wiele sposobów dlatego nie podaje tu żadnego coś na pewno znajdziesz. No i potem podczas sortowania sprawdzasz czy (obecny_czas - początkowy_czas >= 10(tu w minutach np.)) no i wtedy dodajesz break; i przerywasz sortowanie.