This is called Multicollinearity in regression. Dropping is just one way to handle this situation and it is not the only remedy. Sometimes you standardize your independent variables, or get more data (if possible), dropping a term is another option, or even fitting a regression with the knowledge of having Multicollinearity! To assess how much they are correlated, you need to find a factor called Variance inflation factor (VIF), where $VIF(\hat{\beta_j})=\dfrac{1}{1-R^2_i}$ and $R^2_i$ is the coefficient of determination of the regression model, i.e. you replace your $Y$ (dependent variable) with $X_i$ and fit your regression model with all other independent variables. Then you find your $R^2$ as usual. The result is denoted by $R^2_i$ to emphasize the fact that you regressed $X_i$ against other independent variables. As a rule of thumb when $VIF(\hat{\beta_j})>5$ (or in some references $VIF(\hat{\beta_j})>10$), we say that multicollinearity is high.
To answer your 2nd question, just think about the relation between covariance and correlation of two random variables. Then I guess you can find your answer. the correlation is just scaled version of covariance.
For the last question: I don't think there is specific number of variables to call "too many" that works in any model. The thing is that you need to fit a good regression model but it does not mean that you should add too many variables. Because over-parametrization is another problem that should be avoided.