Here's one potential approach (untested):
from collections import defaultdict
fc = 'some_fc'
fields = ('GPS_Date', 'Horiz_Prec')
lookup = defaultdict(list)
# first pass, build a dict of date -> list of precision values
with arcpy.da.SearchCursor(fc, fields) as cursor:
for date, prec in cursor:
lookup[date].append(prec)
# second pass, delete any row whose precision is not the max for the given date
with arcpy.da.UpdateCursor(fc, fields) as cursor:
for date, prec in cursor:
if prec != max(lookup[date]):
cursor.deleteRow()
Note that it doesn't do the sort or handle the case of duplicate precision values for a given date, so you'll have to build those in if necessary