I've just completed the proof on the basis of @Kavi Rama Murthy hints. It would be great of someone helps me verify it. Thank you so much!
My attempt:
Let $\mathcal M = \{D \cap G \mid D \in \mathcal D \text{ and } G \in \mathcal G\}$. Then $(\mathcal D \cup \mathcal G) \subseteq \mathcal M \subseteq \sigma (\mathcal D \cup \mathcal G)$. Thus $\sigma(\mathcal M) = \mathcal D \vee \mathcal G$. For $B \in \mathcal M$, we have $B = D \cap G$ for some $(D,G) \in \mathcal D \times \mathcal G$. Consequently, $$\begin{aligned} \mathbb E [ \mathbb E [X | \mathcal G] \mathbb{1}_B] &= \mathbb E [ \mathbb E [X | \mathcal G] \mathbb{1}_{D \cap G}] &&= \mathbb E [ \mathbb E [X | \mathcal G] \mathbb{1}_{D} \mathbb{1}_{G}] &&\overset{(1)}{=} \mathbb E [ \mathbb E [X \mathbb{1}_{G} | \mathcal G] \mathbb{1}_{D}] \\
&\overset{(2)}{=} \mathbb E [ \mathbb E [X \mathbb{1}_{G} | \mathcal G]] \, \mathbb E[ \mathbb{1}_{D}] &&= \mathbb E [X \mathbb{1}_{G}] \, \mathbb E[ \mathbb{1}_{D}] &&\overset{(3)}{=} \mathbb E [X \mathbb{1}_{G} \mathbb{1}_{D}] \\ &= \mathbb E [X \mathbb{1}_{D\cap G}] &&= \mathbb E [X \mathbb{1}_{B}] \end{aligned}$$
(1) follows from: $\mathbb{1}_{G}$ is $\mathcal G$-measurable.
(2) follows from: $\mathbb E [X \mathbb{1}_{G} | \mathcal G]$ is $\mathcal G$-measurable, $\mathbb{1}_{D}$ is $\mathcal D$-measurable, and $\mathcal G$ is independent of $\mathcal D$.
(3) follows from: $X \mathbb{1}_{G}$ is $\sigma(X) \vee \mathcal{G}$-measurable, $\mathbb{1}_{D}$ is $\mathcal D$-measurable, and $\sigma(X) \vee \mathcal{G}$ is independent of $\mathcal D$.
As a result, $\forall B \in \mathcal M: \mathbb E [ \mathbb E [X | \mathcal G] \mathbb{1}_B] = \mathbb E [X \mathbb{1}_{B}]$. Let $\mathcal N = \{B \in \sigma( \mathcal M) \mid \mathbb E [ \mathbb E [X | \mathcal G] \mathbb{1}_B] = \mathbb E [X \mathbb{1}_B] \} \subseteq \sigma(\mathcal M)$. It follows that $\mathcal M \subseteq \mathcal N$. Clearly, $\mathcal M$ is a $\pi$-system. Next we verify that $\mathcal N$ is a $\lambda$-system:
Clearly, $\Omega \in \mathcal N$.
For $B \in \mathcal N$, $\mathbb E [ \mathbb E [X | \mathcal G]
\mathbb{1}_{B^c}] = \mathbb E [ \mathbb E [X | \mathcal G](1-
\mathbb{1}_{B})] = \mathbb E [ \mathbb E [X | \mathcal G]] - \mathbb
E [ \mathbb E [X | \mathcal G] \mathbb{1}_{B}] = \mathbb E[X] -
\mathbb E [X \mathbb{1}_B] = \mathbb E [X (1- \mathbb{1}_B)] =
\mathbb E [X \mathbb{1}_{B^c}]$. Hence $B^c \in \mathcal N$.
Let $(B_n)_{n \in \mathbb N}$ be a sequence of pairwise disjoint
subsets in $\mathcal N$. Then $$\begin{aligned} \mathbb E \left [
\mathbb E \left [X | \mathcal G \right ] \mathbb{1}_{\bigcup B_n}
\right ] &= \mathbb E \left [ \mathbb E \left [X | \mathcal G \right
] \sum \mathbb{1}_{B_n} \right ] &&= \sum \mathbb E \left [ \mathbb E
\left [X | \mathcal G \right ] \mathbb{1}_{B_n} \right ] &&= \sum
\mathbb E [X \mathbb{1}_{B_n}]\\ &= \mathbb E \left [X
\sum\mathbb{1}_{B_n} \right ] &&= \mathbb E \left [X
\mathbb{1}_{\bigcup B_n} \right ] \end{aligned}$$ Thus ${\bigcup B_n}
\in \mathcal N$.
By Dynkin's $\pi$-$\lambda$ theorem, we get $\sigma (\mathcal M) \subseteq \mathcal N$ and thus $\sigma (\mathcal M) = \mathcal N$. Hence $\forall B \in \mathcal D \vee \mathcal G: \mathbb E [ \mathbb E [X | \mathcal G] \mathbb{1}_B] = \mathbb E [X \mathbb{1}_{B}]$. Moreover, $\mathbb E [X | \mathcal G]$ is $\mathcal G$-measurable and consequently $(\mathcal D \vee \mathcal G)$-measurable. As a result, $\mathbb E [X | \mathcal G] = \mathbb E [X | \mathcal D \vee \mathcal G]$ almost surely.