I am not sure how this could be done, since the --progress option has been implemented in upload-pack.c
And git upload-pack mentions
Invoked by git fetch-pack, learns what objects the other side is missing, and sends them after packing.
This command is usually not invoked directly by the end user.
The UI for the protocol is on the git fetch-pack side, and the program pair is meant to be used to pull updates from a remote repository.
For push operations, see git send-pack.
So if the server doesn't send back this kind of data, I don't know how to extract it directly, except by checking out this comment in upload-pack.c
/* We read from pack_objects.err to capture stderr output for
* progress bar, and pack_objects.out to capture the pack data.
*/
If you have access to pack_objects.err on the server side, you might be able (maybe) to get some informations from that.