Se le converti in testo poi te l'ordina come fosse testo, prova così:

codice:
SELECT DISTINCT CONVERT(CHAR(12),[Inizio],105) as data_inizio,
datename(weekday,[Inizio]) as 'Nome giorno'
FROM dbo.[Programma] order by [Inizio]