• We don't know anything about your table, so here is something that works on my environment

    ;WITH cteBaseData AS (

    SELECT [Timestamp], Customer

    , seq = ROW_NUMBER() OVER (PARTITION BY Customer ORDER BY [Timestamp] DESC)

    FROM #Customer

    )

    DELETE src

    FROM #Customer AS src

    INNER JOIN cteBaseData AS cte

    ON src.Customer = cte.Customer

    AND src.[Timestamp] = cte.[Timestamp]

    WHERE cte.seq > 3;