If you run the command with the '-jobs 2' option, as part of the setup process it will tell you how much memory it is acquiring. That will let you know if you are exceeding your allowed memory. Which is my strong suspicion, since that is exactly what a malloc failure implies.
You can split your dataset in 2 (or more) along the slice direction with 3dZcutup, run 3dDeconvolve on the pieces, and re-merge the pieces with 3dZcat.
You have a LOT of unknowns (around 1400, I estimate). How long is your time series?