A thread came up about this the other day.
The short answer is not directly, no. XSS makes use of Javascript which runs in the users browser and doesn't have access to modify anything server side.
However if an admin with elevated privileges visits the page with XSS you can use XSS to steal his session cookies (assuming HTTP only cookies isn't enabled) and once authed against the website you may have access to an admin area or a CMS that has upload capability.
If you're familiar with the CMS, AND it's vulnerable to file upload, AND an admin who is authed visits your page then you could theoretically do this in one shot and have the Javascript upload the shell for you, and people have done that for specific CMS's with known vulnerabilities.
So the long answer is yes, it's possible but only in very specific circumstances, generally speaking you'd use it as part of a larger attack.