We may enumerate the elements of $\Bbb Z_2[x]/\langle x^3 + x^2 + x + 1 \rangle$ via the observation, correctly made by our OP pfmr1995, that
$\Bbb Z_2[x]/\langle x^3 + x^2 + x + 1 \rangle = \{a_0 + a_1x + a_2x^2 \mid a_0, a_1, a_2 \in \Bbb Z_2 \}; \tag 1$
we cycle through every possible triple $(a_0, a_1, a_2) \in \Bbb Z_2^3$ and thus write out the elements of this ring explicitly as
$\Bbb Z_2[x]/\langle x^3 + x^2 + x + 1 \rangle = \{ 0, 1, x, x + 1, x^2, x^2 + 1 = (x + 1)^2, x^2 + x, x^2 + x + 1 \}; \tag 2$
since the ring $\Bbb Z_2[x]/\langle x^3 + x^2 + x + 1 \rangle$ is unital, with multiplicative identity
$1 + \langle x^3 + x^2 + x + 1 \rangle \in \Bbb Z_2[x]/\langle x^3 + x^2 + x + 1 \rangle, \tag 3$
every element listed between the set braces "$\{, \; \}$" will occur in the multiplication table for $\Bbb Z_2[x]/ \langle x^3 + x^2 + x + 1 \rangle$, if only in the rows and columns corresponding to multiplication by $1$, that is, the second row and column in the table below. The reader will observe that these are not the only rows and columns which contain every element of $\Bbb Z_2[x]/\langle x^3 + x^2 + x + 1 \rangle$; indeed, this property is shared by the rows and columns corresponding to the elements
$1, x, x^2, x^2 + x + 1 \in \Bbb Z_2[x]/\langle x^3 + x^2 + x + 1 \rangle. \tag 4$
In preparing the table below, the following identities over $\Bbb Z_2$ proved useful:
$(x + 1)^2 = x^2 + 2x + 1 = x^2 + 1, \tag 5$
$(x + 1)^3 = (x + 1)(x + 1)^2$
$= (x + 1)(x^2 + 1) = x^3 + x^2 + x + 1 \equiv 0 \; \text{in} \; \Bbb Z_2[x]/\langle x^3 + x^2 + x + 1 \rangle. \tag 6$
The entries in the table below were calculated in the usual fashion: the polynomials corresponding to a given cell were multiplied together in the standard fashion, and then the powers of $x$ greater than the second were systematically removed using (6) in the form
$x^3 = -x^2 - x - 1 \equiv x^2 + x + 1, \tag 7$
where the fact that the coefficients lie in $\Bbb Z_2$ has been exploited in writing this formula. It was also found very expeditious to build as much as possible upon previously filled-in entries when calculating the result to be placed in a given cell; for example, when computing $x^2(x^2 + 1)$ we write
$x^2(x^2 + 1) = (x^2)^2 + x^2, \tag 8$
then use the already-known result
$(x^2)^2 = 1 \tag 9$
to rapidly obtain
$x^2(x^2 + 1) = (x^2)^2 + x^2 = x^2 + 1; \tag{10}$
such methodology not only reduces the overall amount of effort spent on calculation, but also decreases the probability that an error might be made (assuming of course none has been made in the previous computations). Another instance of such policy is
$(x^2 + x + 1)^2 = (x^2 + x)^2 + 1 = x^2 + 1 + 1 = x^2, \tag{11}$
where we have used
$(x^2 + x)^2 = x^2 + 1 \tag{12}$
in support of (11).
These things being said, I present my multiplication table for the ring $\Bbb Z_2[x]/\langle x^3 + x^2 + x + 1 \rangle$ below:
$\begin{matrix} \ast & 0 & 1 & x & x + 1 & x^2 & x^2 + 1 & x^2 + x & x^2 + x + 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 1 & 0 & 1 & x & x + 1 & x^2 & x^2 + 1 & x^2 + x & x^2 + x + 1 \\ x & 0 & x & x^2 & x^2 + x & x^2 + x + 1 & x^2 +1 & x + 1 & 1 \\ x + 1 & 0 & x + 1 & x^2 + x & x^2 + 1 & x + 1 & 0 & x^2 + 1 & x^2 + x \\ x^2 & 0 & x^2 & x^2 + x + 1 & x + 1 & 1 & x^2 + 1 & x^2 + x & x \\ x^2 + 1 & 0 & x^2 + 1 & x^2 + 1 & 0 & x^2 + 1 & 0 & 0 & x^2 + 1 \\ x^2 + x & 0 & x^2 + x & x + 1 & x^2 + 1 & x^2 + x & 0 & x^2 + 1 & x + 1 \\x^2 + x + 1 & 0 & x^2 + x + 1 & 1 & x^2 + x & x & x^2 + 1 & x + 1 & x^2\end{matrix}$
The zero divisors of $\Bbb Z_2[x]/\langle x^3 + x^2 + x + 1 \rangle$ may readily be read off from this table; indeed, we merely look for rows which have zeroes in any column other than the $0$ column itself; we find that the zero divisors in this ring are $x + 1$, $x^2 + 1 = (x + 1)^2$, and $x^2 + x = x(x + 1)$; indeed,
$(x + 1)(x^2 + 1) = (x^2 + x)(x^2 + 1) = 0, \tag{13}$
which follows from the fact that $x + 1$ is nilpotent, cf. (6). Similarly, the units may be read off from those rows which contain $1$ in some column; we find that
$(\Bbb Z_2[x]/\langle x^3 + x^2 + x + 1 \rangle)^\times = \{1, x, x^2, x^2 + x + 1 \}, \tag{14}$
viz.
$x(x^2 + x + 1) = x^2x^2 = 1\cdot 1 = 1. \tag{15}$
Finally, we observe that the units are recognizable by the fact that they simply permute the elements in their rows; this is in fact an instance of the general property of all unital rings $R$: $R^\times$ acts on all of $R$ as a permutation: indeed, any $u \in R^\times$ yields a surjective map
$u \to ur, \; r \in R, \tag{16}$
since
$\forall s \in R, \; u(u^{-1}s) = s; \tag{17}$
multiplication by $u$ is also injective:
$ur = us \Longrightarrow r = u^{-1}(ur) = u^{-1}(us) = s; \tag{18}$
multiplication by any $u \in R^\times$ is thus permutes the elements of $R$ amongst themselves, as is manifested in the corresponding rows//columns of our table.
In closing, I would like to say I don't think I've made any mistakes in preparing the above table; but with so many similar looking polynomials in $x$ flying around, it is hard to be sure; so if anyone spots an error, I would be more than grateful to read just what it is.