Wenn für alle Spalten gleich breit sind, dann lässt könnte man das wie unten stehend lösen. Die gleiche Breite kann man durch Vorgabe von `text width` erreichen. Den benötigten Wert kann man zum Beispiel aus dem breitesten Zelleninhalt ermitteln.
\documentclass[tikz,margin=5mm]{standalone}
\usetikzlibrary{matrix}
\newlength\textbreite
\newcommand\mc[2]{%
|[
draw=none,
xshift=(-\iabst-.5\pgflinewidth),yshift=(-\iabst-.5\pgflinewidth),
inner ysep=0pt
]|%
\makebox[\textbreite][l]{%
\pgfmathsetlength\textbreite{#1*(\textbreite+2*\iabst)-2*\iabst}
\tikz\node[draw,inner ysep=\iabst]{%
\makebox[\textbreite]{#2}%
};%
}%
}%
\usepackage{blindtext}
\begin{document}
\settowidth\textbreite{breites Wort}% Ermitteln der Textbreite
\begin{tikzpicture}
\newcommand\iabst{0.3em} % Abstand zwischen Text und Zellenrand
\matrix [matrix of nodes,
nodes={
draw=gray!30,
text width=\textbreite,
align=center,
inner sep=\iabst,
},
row sep=-\pgflinewidth, column sep=-\pgflinewidth
] {
\mc{3}{ABC}\\
D & E& F \\
\mc{2}{GH}& & breites Wort\\
};
\end{tikzpicture}
\end{document}
![alt text][1]
----------
Soll nur die erste (oder letzte) Zeile über die ganze Tabellenbreite gehen, dann kann man diese auch nachträglich einfügen. Dabei spielt die Breite der einzelnen Spalten keine Rolle mehr:
\documentclass[tikz,margin=5mm]{standalone}
\usetikzlibrary{matrix,calc}
\begin{document}
\begin{tikzpicture}
\matrix (m)[matrix of nodes,
draw,
nodes={minimum width=2em},
] {
D&E&F\\
G &ein paar Worte& I \\
};
\path
let \p1=(m.east),\p2=(m.west),\n1={\x1-\x2-\pgflinewidth} in
(m.north)
node[draw, anchor=south, minimum width=\n1,yshift=-\pgflinewidth]
{Ein breiter Titel};
\end{tikzpicture}
\end{document}
![alt text][2]
----------
Es gibt aber auch die Möglichkeit Inhalte nachträglich in die Matrix einzufügen, wenn man den entsprechenden Platz vorsieht. Damit sich der Aufwand in Grenzen hält, gebe ich eine ausreichend große, einheitliche Zellenhöhe vor.
\documentclass[tikz,margin=5mm]{standalone}
\usetikzlibrary{matrix,calc}
\tikzset{
zusatz/.style={draw=green!30, anchor=south west, minimum width=#1,yshift=-\pgflinewidth,minimum height=2em
}
}
\begin{document}
\begin{tikzpicture}
\newcommand\hoehe{2em}
\matrix (m)[matrix of nodes,draw,
nodes={draw=gray!30,minimum height=\hoehe,font=\strut},
row sep=-\pgflinewidth, column sep=-\pgflinewidth
] {
XD&E&F\\
&&R\\
A&B&C\\[\hoehe]
G &ein paar Worte& IXX \\
};
\path
let \p1=(m-4-2.east),\p2=(m-1-1.west),\n1={\x1-\x2-\pgflinewidth} in
(m-1-1.west|-m-3-1.north)node[zusatz=\n1]{zwei Spalten};
\path
let \p1=(m-4-3.east),\p2=(m-1-1.west),\n1={\x1-\x2-\pgflinewidth} in
(m-1-1.west|-m-4-3.north)node[zusatz=\n1]{drei Spalten};
\end{tikzpicture}
\end{document}
![alt text][3]
[1]: http://texwelt.de/wissen/upfiles/mcmatr1.png
[2]: http://texwelt.de/wissen/upfiles/matrmtitel.PNGhttp://texwelt.de/wissen/upfiles/matrmtitel.PNG
[3]: http://texwelt.de/wissen/upfiles/zeileneinschieben.png