You're basically asking for confidence intervals on the probabilities of a multinomial distribution.
Let $Q$ be the number of balls in the box (you said 100), of which there are distinct labels 1 to $m$ (you said 10). Let's say there are $N_i$ balls of type $i$, with $\sum_i N_i = Q$; we'll say $N = (N_1, \dots, N_m)$.
Say you draw $n$ balls and get a vector of counts for each type $x = (x_1, \dots, x_m)$. If $m = 3$ and you drew 10 with label 1, 2 with label 2, and 3 with label 3, you'd have $x = (10, 2, 3)$. $x$ is distributed according to $\text{Multinomial}(n, p_1, \dots, p_m)$, where $p_i = N_i / Q$.
After drawing $n$ balls, your maximum-likelihood prediction of the ball counts $\hat{N}$ is clearly $(Q x_1, \dots, Q x_m)$.
Now, you want to pick $n$ large enough such that your 95% confidence region on $N$ will contain only one integer for each component.
Confidence intervals on multinomials are actually somewhat complicated, because of the interactions between cells; here's some papers. R has a function gofCI
to do this asymptotically, whose help page has some more references.