Collect might do what you have in mind.
Collect
Collect[y/x^2 + (4*x^3)/y - 4/(y*x^2), x] (* Out[152]= (4*x^3)/y + (-(4/y) + y)/x^2 *)