Hi makumbisulaim,
Use SUBSTRING function and split the Time. Then Convert it to DateTime and apply the ORDER BY clause.
Refer below sample query.
SQL
DECLARE @TimeTable AS TABLE(Time VARCHAR(50),Day VARCHAR(50),Subject VARCHAR(50))
INSERT INTO @TimeTable VALUES('12:30 PM-02:00 PM','THURSDAY','ENGLISH')
INSERT INTO @TimeTable VALUES('03:30 PM-05:00 PM','WEDNESDAY','ENGLISH')
INSERT INTO @TimeTable VALUES('11:00 AM-12:30 PM','MONDAY','ENGLISH')
SELECT * FROM @TimeTable
ORDER BY CAST(SUBSTRING(Time, 1, (CHARINDEX('-',Time)-1)) AS DATETIME)
Screenshot