This can be done in asdocx, that has the power of flexmat. With flexmat, we can create tables from cells, rows, columns, and matrices. Given that you have already made the matrices, I shall join theme and assign some row and column titles to it. Once the flexmat table is ready, it can exported to Word, Excel or LaTeX in just one click.

Code:
flexmat reset

levelsof region, loc(levels)
flexmat addrow, data(Region, Obs, Proportions, Weighted obs, Weighted prop)
flexmat addcol, data(`levels') parse(space) row(2)
flexmat addmat, matname(obs) dec(3) col(2) nonames row(2)
flexmat addmat, matname(prop) dec(3) col(3) nonames row(2)
flexmat addmat, matname(weighted_obs) dec(3) col(4) nonames row(2)
flexmat addmat, matname(weighted_prop) dec(3) col(5) nonames row(2)


----+-----------------------------------------------------------------------------
  1 |Region              Obs       Proportions      Weighted obs     Weighted prop
----+-----------------------------------------------------------------------------
  2 |1                  2096            20.250          24237893            20.690
  3 |2                  2774            26.800          29163797            24.890
  4 |3                  2853            27.560          31080884            26.530
  5 |4                  2628            25.390          32674939            27.890
-----------------------------------------------------------------------------------

asdocx is available at $9.99 only for a limited time period. With the asdocx membership, you get :
  • Life-time license to use
  • All future updates
  • All premium templates / plugins.