How to construct natural numbers by set theory?
You cannot prove $N=\{0,0^+, 0^{++}, \ldots\}$ is a set because the right hand side is not even a definition, merely suggestive notation. Your attempt of defining a natural number as something that takes the form of a finite number of successors applied to $0$ fails for the reasons you are beginning to suspect: you haven't defined what it means to be a finite number yet, let alone what it means to have said form, and such a thing seems rather hopeless without first having a definition of what it means to be a natural number.
What we might be tempted to do is "write down" an infinite disjunction: $$ \mathbb N = \{x: x =0\lor x=0^+\lor x=0^{++}\lor\ldots\}.$$ This would be a more logic-oriented approach to the intuitive "definition". However, infinite formulas are not allowed in the first order logic that underlies set theory. There are good reasons why we stick to first order logic, but I won't argue it here... I'll just note that making this definition requires we reason about completed infinities, which might be uncomfortably circular to a person approaching with a foundationalist mindset.
So we need to be somewhat less direct in our definition, and Enderton gives the most common approach. We define the notion of an inductive set as one that contains $0$ and is closed under the successor function, and then, crucially, we assume that an inductive set exists (this is the axiom of infinity, which, as its name suggests, is required for there to be any infinite sets at all). Then we define a natural number as a set belonging to every inductive set, and hence the set of natural numbers is the intersection of all the inductive sets.
(If there are no inductive sets, this definition does not work as intended since every set is vacuously a member of every inductive set. The set of natural numbers cannot be defined. However, the property of being a natural number can still be defined, but one needs to use a different definition that can be most succinctly phrased in terms of ordinals: a natural number is an ordinal that is not greater than or equal to any limit ordinal. CopyPasteIt's link has something similar that will work as well.)
The fact that we take the smallest possible inductive set is what corresponds to the idea that the set only contains zero and its successors, i.e. the only things that we need to be there in order to have an inductive set. However, we cannot hope to prove something of the form $\forall x\in\mathbb N(x=0\lor x=1\lor\ldots)$... as I remarked above, we cannot even express this notion in our language... if we could have we would have probably defined it this way.
So there's a reason Enderton defines the set of natural numbers as the intersection of all inductive sets rather than as $"\{0,1,2,\ldots\}"$ or as the set of all sets that can be obtained from $0$ by a finite number of applications of the successor function: this definition works in the desired framework and the latter two don't.
An earlier version of this answer made some remarks about non-standard models that may have misled you into thinking that somehow these naturals we define in set theory are not the "real" natural numbers. Make no mistake: what Enderton is doing here is giving a rigorous definition of the natural numbers within the framework of set theory. (And we can also define all the usual structure, arithmetic, etc.) The intention is to make precise the intuitive notion and also to unify with any number of other mathematical concepts that can also be encoded in ZF. So this set is intended to be the natural numbers for all intents and purposes.
(This is not the only way of looking at this: nobody says we have to use set theoretical foundations. Moreover, the concept of the natural numbers also has its own effective axiom system (PA or second order variants thereof) that we can use to study arithmetic and analysis in isolation. What is the 'real' natural numbers isn't really a sharp or in my opinion meaningful question.)
You can't define the set $\{\emptyset, \emptyset^+, \emptyset^{++}, \ldots\}$. If we can construct a set $X$ with the property $$\emptyset^{(n)}\in X \text{ for every natural number(external) } n,$$ then the compactness theorem provides that there might exist an element of $X$, which is not $\emptyset^{(n)}$ for every $n$.