How is dot or cross product possible using the del operator?

The divergence of a vector field is not a genuine dot product, and the curl of a vector field is not a genuine cross product.

$\nabla \cdot \vec A$ is just a suggestive notation which is designed to help you remember how to calculate the divergence of the vector field $\vec A$. The notation is nice, because it looks like a dot product, but as you say $\nabla$ is not actually a vector.

If it helps, you can use the alternate notation $$\operatorname{div}(\vec A) = \partial_x A_x + \partial_y A_y + \partial_z A_z$$

which makes it easier to see that $\operatorname{div}(\bullet)$ is just an operator which eats a vector field and spits out a scalar field. Curl can be defined similarly, though it's a pain to write out in its entirety.

In Cartesian coordinates, the dot and cross products look like this: $$\vec A \cdot \vec B = \sum_i A_i B_i$$ $$\left[\vec A \times \vec B\right]_i = \sum_{j,k}\epsilon_{ijk}A_jB_k$$

while the divergence and curl operations look like this: $$\operatorname{div}(\vec B) = \sum_i \partial_i B_i$$ $$\big[\operatorname{curl}(\vec B)\big]_i = \sum_{j,k}\epsilon_{ijk} \partial_j B_k$$

The striking similarity leads one to define the vector operator $\nabla$, whose components are just the partial derivatives ($\nabla_i = \partial_i$). However, as pointed out in the comments, this similarity does not generally hold up if you switch to a new coordinate system.

For example, in cylindrical coordinates $(\rho,\phi,z)$, the dot product of two vectors becomes $$\vec A \cdot \vec B = A_\rho B_\rho + A_\phi B_\phi + A_z B_z$$ just like before, but the divergence looks like this:

$$\operatorname{div}(\vec B) = \frac{1}{\rho}\partial_\rho(\rho B_\rho) + \frac{1}{\rho}\partial_\phi B_\phi + \partial_z B_z$$