Zależy od Twoich danych (ile wierszy przypada na grupę?) i indeksów.
Zobacz Optymalizacja TOP N zapytań na grupę dla niektórych porównań wydajności 3 podejść.
W twoim przypadku z milionami wierszy dla niewielkiej liczby pojazdów dodałbym indeks na VehicleID, Timestamp
i zrób
SELECT CA.*
FROM Vehicles V
CROSS APPLY (SELECT TOP 1 *
FROM ChannelValue CV
WHERE CV.VehicleID = V.VehicleID
ORDER BY TimeStamp DESC) CA