Do you know what he had for dinner?は間接疑問文と呼ばれるものです。 動詞の後に疑問詞svとすることで文の中に疑問文を入れることができる表現で、この表現を使う場合は疑問詞のみでthatは不要です。 この場合「あなたは彼が何を食べたか知っていますか?」という意味になります。
thatを使う場合は、 Do you know that 〜?で「あなたは〜(that以下の)ことを知っていますか?」という意味になります。このthatは接続詞なので、後にはS Vが続きます。