The stress tensor (as you likely know) is computed from the velocities, so it's not an independent variable that we solve for. If you derive the weak form for the momentum equation and integrate the pressure term by parts, you end up with the following boundary contribution, where sigma = sigma(\vec{u}). The natural boundary condition (if you don't specify any boundary conditions in your input file) corresponds to setting this term equal to zero. However, if you know something about what sigma should be on the boundary then you should substitute that information into the equation below

e.g. using John's substitution (I myself don't know anything about Marangoni convection :-):
and then you would want to translate this into your own boundary condition. MOOSE residual syntax for a boundary condition like the above could look like:
```
_test[_i][_qp] * (_normals[_qp](_component) * _p[_qp] - d_gamma_d_T * _grad_T[_qp](_component))
```
so you are indeed specifying what the stress tensor needs to be, but this is still a boundary condition being applied to our velocity variables.
Note that if you don't integrate the pressure by parts then it disappears from the two equations above.
Alex