Nein, dafür müsste man eine Ebene höher ansetzen. Ein Request an einen Server wird immer vom Webserver abgefangen und auch protokolliert. Wenn man eine Webseite aufruft gibt es folglich einen Request an den Server und auch einen Logeintrag der die aufgerufene URL, Uhrzeit, ggfs. auch noch die (anonymisierte) IP, die übertragene Datenmenge und das Ergebnis des Requests enthält. Und gerade letztere beide Daten sind das was dich interessiert.
Ich habe mich eben mal auf die Suche gemacht und hier 2 Möglichkeiten gefunden.
Möglichkeit a)
Basiert auf dem Fakt, dass eine Datei vom Server nur gelöscht werden kann, wenn kein Prozess mehr darauf zugreift. D.h. solange der Apache auf die Datei zugreift um sie per Download auszugeben, solange liegt sie auch unlöschbar auf dem Server. Wenn man den Gedanken weiterführt, kann man ja alle X Sekunden prüfen, ob die Datei gelöscht werden kann. Wenn sie nicht gelöscht werden kann, dann wird noch auf sie zugegriffen/runtergeladen. Wenn sie gelöscht werden kann, dann wurde sie runtergeladen - und in deinem Fall könntest Du dann den Counter hochsetzen.
Möglichkeit b)
Das selbe wie a), nur das man über die Apache-eigene SetEnv-Funktion prüft, ob eine Datei runtergeladen wurde - und wenn ja wird sie gelöscht. Das könnte man in einer Programmierung nun wiederum z.B. mit file_exists() prüfen, und wenn die Datei nicht mehr existiert kannst Du den Counter hochsetzen.
Das klingt sicher für dich erstmal kompliziert, vor allem weil du eigentlich keine Dateien löschen willst. Dazu hätte ich aber folgenden Vorschlag:
Bau für jeder runterzuladende Datei einen Link mit Parameter zusammen, z.B. download.php?file=filename.zip. Das download.php-Script liefert dann die Datei zum Download aus. Am Ende des Scripts, nach der Ausgabe des Codes der runterzuladenden Datei, prüfst Du dann in einer Schleife, ob die Datei gelöscht werden kann. Wenn ja, setzt Du den Counter hoch.
Habe so etwas nie gemacht und finde auch den Aufwand dafür etwas groß. Eine 100%ige Sicherheit, dass eine Datei komplett runtergeladen wurde kann es ohne einen speziell programmierten Download-Manager (Client-Server-Kommunikation während Download, so wie es z.B. der Flash-Updater macht) aber nicht geben.