My attempt gave me the answer of $28$. I don't know if it's correct or not but I'll give it a go anyway.
For every number $n$ that $A$ chooses, $A$ will give $B$ three numbers (the number of subsets that $n$ is in). We will label each number from $1$ to $1001$ by a triple $(x, y, z)$ where $x, y, z$ are non-negative integers and every triple will have to be pairwise distinct. Notice that $x \le k_1, y \le k_2, z \le k_3$ so the triples can represent at most $(k_1+1)(k_2+1)(k_3+1)$ numbers, here we want $(k_1+1)(k_2+1)(k_3+1) \ge 1001 = 7 \cdot 11 \cdot 13$ and $k_1 + k_2 + k_3$ is smallest so WLOG we're going to choose $k_1 = 6, k_2 = 10, k_3 = 12$ which gives the answer of $28$.
Now we're going to construct the subsets. At first we'll have $3$ groups $S_1, S_2, S_3$ consist of $6, 10, 12$ empty sets. Then for every $n$ labeled $(x, y, z)$, we're going to put $x, y, z$ copies of $n$ in any sets in $S_1, S_2, S_3$ respectively (one copy for each set). Do this for every $n$ from $1$ to $1001$ and we have the subsets $B$ needs to choose.