A theme is mostly a set of variable names and values. Enabling a theme means setting each variable to its correspond value in the theme. The variables are changed globally, i.e., for every buffer, window and frame. As a result, you can't have different windows with different themes.
Something you can do though is to have a different font for org-mode. For example, you could use variable pitch:
(add-hook 'org-mode-hook (lambda () (variable-pitch-mode t)))
Another solution is to have separate Emacs processes (i.e., you start Emacs twice, once for programming, once for org-mode). This can be done (untested) by setting a variable from the command line:
emacs --eval="(setq my/for-org t)"
And then, your init file could select the theme based on that:
(when (bound-and-true-p my/for-org) (load-them 'leuven))