Sublime has currently no concept of shiftwidth, a plugin is needed. The implementation may be tricky, as a simple replace of \t with 8 spaces gives an undesired result having a situation like this (ts=8 sw=4)
Hmm you could programmatically change "translateTabsToSpaces" to false and then back to true...
Actually a better way to do this would be to set "translateTabsToSpaces" to False, set the tab size to 8, and overload the tab key to insert 4 spaces instead of a tab. You would still need the onPreSave to replace the 8-spaces to a tab char.
But at least, this way, you'll see the source properly indented