Alternative parametrization with heterogeneous treatment effects
The solution you propose allows for heterogeneous treatment effects, which is good and should probably be the default, but what the "right" choice is depends on what you want to study. In your case, age is allowed to affect the outcome differently by treatment group [or treatment affects the outcome differently by age]. If that is what you want to study, this is the way to go. You could however still parametrize your model in a slightly different way, which would lead to a different interpretation of coefficients.
Model: $$Y=XB+\epsilon$$
$$
X = \begin{bmatrix}1&1&0&60&60&0\\1&1&0&68&68&0\\1&1&0&79&79&0\\1&0&1&57&0&57\\1&0&1&67&0&67\\1&0&1&80&0&80\\1&0&0&59&0&0\\1&0&0&68&0&0\\1&0&0&75&0&0\\\end{bmatrix}$$
$$B=\begin{bmatrix}B_1\\B_2\\B_3\\B_4\\B_5\\B_6\end{bmatrix}$$
where
$B_1$: Mean outcome (intercept) for Group 3 (reference group)
$B_2$: Difference in mean for Group 1 (to reference group)
$B_3$: Difference in mean for Group 2 (to reference group)
$B_4$: Slope (of age) in Group 3 (reference group)
$B_5$: Difference in slope for Group 1
$B_6$: Difference in slope for Group 2
UPDATE:
Where do these interpretations come from?
Note that the equation implies on the individual level: \begin{align}y_i &= B_1 + B_21_{(group_i=1)} + B_31_{(group_i=2)}\\ &+ B_4age_i + B_51_{(group_i=1)}age_i+ B_61_{(group_i=2)}age_i+\epsilon_i\end{align} where $1_{(group_i=j)} $ is a dummy taking the value 1 if observation i belongs to group j.
Now you can check how the line looks (slope and intercept) for each group:
\begin{align}E[y|group=1] &=
B_1 + B_21 + B_30 + B_4age_i + B_51age_i+ B_60age_i\\&=(B_1+B_2) + (B_4+B_5)age\end{align}
Similarly
\begin{align}
E[y|group=3] &=
B_1 + B_20 + B_30 + B_4age_i + B_50age_i+ B_60age_i\\&=B_1 + B_4age\end{align}
Hence the slope and intercept for observations of group 3 are $B_4$ and $B_1$ respectively. And if you add $B_5$ and $B_2$ you get the line for observations of group 1.
Constant treatment effect
An alternative approach would possible if you assume that age does not interact with the treatment. In this case you would/could use age only as a control variable (i.e. to filter out what would otherwise be noise in your regression).
Model: $$Y=XB+\epsilon$$
$$
X = \begin{bmatrix}1&1&0&60\\1&1&0&68\\1&1&0&79\\1&0&1&57\\1&0&1&67\\1&0&1&80\\1&0&0&59\\1&0&0&68\\1&0&0&75\\\end{bmatrix}$$
$$B=\begin{bmatrix}B_1\\B_2\\B_3\\B_4\end{bmatrix}$$
where
$B_1$: Mean outcome (intercept) for Group 3 (reference group)
$B_2$: Difference in mean for Group 1 (to reference group)
$B_3$: Difference in mean for Group 2 (to reference group)
$B_4$: Average slope of age (across groups)
Other models...
...are possible, but that really depends on finer details of the question you want to answer. E.g. using higher polynomials for age (to allow for non-linear effects).