I presume you have "Integrated Windows Authentication" enabled. When this is the case, IIS will issue 401 before the request ever comes to ProGet.
In this case, the client must support it. PowerShell does, but you must explicitly advise credential use with the "UseDefaultCredentials" flag.
Invoke-RestMethod
-Uri http://srv-proget/vsix/[vsixapi]
-Method Put
-InFile [vsix]
-Headers @{"X-ApiKey"="[api key]"}
-UseDefaultCredentials
I don't believe curl will support this.