There are several problems.
1. You need to alias your innermost derived table.
2. external is a reserved word in SQL so put [] around it.
3. You need a TOP in your 2nd SELECT before SiteName, DateTimeMeas
4. You need to alias the outermost table.
Try this
SELECT TOP 10 *
FROM(
SELECT TOP 10 SiteName, DateTimeMeas
FROM (
SELECT TOP 10 *
FROM (
SELECT TOP 10 *
FROM (
SELECT DISTINCT SiteName, DateTimeMeas
FROM TimeDep
) y
) AS internal
ORDER BY SiteName DESC
) AS [external]
ORDER BY SiteName ASC) x