The trick is to find the latest value per [Id]. There are two ways, either you use group by Id and find out max Time then join back to the original table. Or you can use
ROW_NUMBER[
^] function to generate a descending sequence by Time per Id.
select [Id], [Status], [Time]
from (
select [Id], [Status], [Time],
row_number() over(partition by [Id] order by [Time] desc) seq
from [dbo].[Table_1]
) x
where x.seq = 1
This of course assumes that the Time columns is datetime not varchar.