It can be done in $\widetilde{O}(m^{10/7})$ time, by reducing to network flow.
As a warmup, suppose we know the max matching you're seeking has size $k$. Then let's build a flow graph by adding three nodes to your original graph: we'll add a source node $s$, a second node $s'$, and a sink node $t$. Then, we'll add some edges with unit capacity: $k-|S|$ parallel edges $s \to s'$, an edge $s \to v$ for each node $v \in S$, an edge $s' \to w$ for each node $w$ on the left-hand side such that $w\notin S$, and an edge $x\to t$ for each node $x$ on the right-hand side. Now find the maximum flow in this graph. This will give you the matching you want: your matching corresponds to a legal flow of capacity $k$, and any legal flow of capacity $k$ corresponds to a matching of size $k$ that matches every vertex in $S$ (since the only way to get $k$ flow out of $s$ is to saturate every edge out of $s$, and in particular to send one unit of flow to each vertex in $S$; that flow has to go somewhere, so that means every vertex of $S$ is matched).
So, if we knew $k$, this would find the matching you want. Also, the running time would be $\widetilde{O}(m^{10/7})$, as Madry's algorithm can compute maximum flows in that running time.
Of course, in real life we don't know $k$ a priori. However, we can use binary search to find it. This increases the running time by a $\lg(n)$ factor, which is absorbed in the $\widetilde{O}$ running time; the total running time remains $\widetilde{O}(m^{10/7})$.
I realize this doesn't answer whether $O(m \sqrt{n})$ or $O(n^\omega)$ is attainable. It seems possible that the same considerations which lead to a $O(m \sqrt{n})$ time for computing maximum flows in bipartite matching instances might also lead to a $O(m \sqrt{n})$ time for the kind of graph I outlined above, but I don't know whether this is indeed the case or not.