Why caption of field always on top?

Is there any way to layout caption to left of field and required indicator to right side?

The position of the caption and required indicator depends on the client-side implementation of the Layout where the field is. Most of the Layouts position the caption above the Component, but at least FormLayout will position it on the left. In some cases you can position caption and required indicator elements (which are created by the layout implementation) by using CSS.