Capture row with highest value from each percentile
If I understand correctly your objective is this:
After ordering by position_id, get the row with the highest position_id for each of 100 percentiles.
DISTINCT ON does it:
SELECT DISTINCT ON (ntile)
       NTILE(100) OVER (ORDER BY position_id) AS ntile, *
FROM   position
WHERE  activity_id = 1
ORDER  BY ntile, position_id DESC;

db&lt;&gt;fiddle here
Since the PK is on (position_id, activity_id), position_id is unique for each activity_id and we need no tiebreaker.
Can be a single SELECT without subquery because DISTINCT ON is applied after window functions.
See:

Select first row in each GROUP BY group?
Best way to get result count before LIMIT was applied