How I think of it--and I'm sure it's totally simplified, but it works--is that Sulfur still has room on it's valence, since it can form five bonds. Only four is taken up in SO3. The O from H2O just has electrons sitting there, but it cannot form five bonds, so it cannot accept more electrons. It's got a packed house, and therefore can't be a lewis acid, but it doesn't lose anything when it joins up with SO3. O still has the octet, and S is satisfied with its new packed house as well. So the S accepts two electrons, making it a lewis acid. And everyone is happy.