Does anyone if it is possible to post a mkto list to an SFTP via a webhook or can this only be accomplished by an API call?
A webhook speaks HTTP or HTTPS, so you'd need the next hop (service called by the 'hook) to take the payload and then pass it on to the next hop over SFTP. Not hard to build on its own.
But that's not the problem!
The problem is a webhook runs in the context of a single lead. So it doesn't have access to lists to begin with.
In sum, yes, you will need a separate scheduled task that downloads the list via API and then reuploads it to your SFTP.