They both mean "guess", "surmise", "assume", "conjecture", and the like.
추측하다 is probably more often used in formal occasions and texts, while people tend to use 짐작하다 more in everyday conversation. But even this distinction is not that strong, so their difference is quite small.