There are a couple of possibilities.
Edit: If you generally want to omit subentries of todo items in the agenda, set
org-agenda-todo-list-sublevels to nil. This will generate lists with only the highest level todo item.
If all you need is folding, as Sean Allred pointed out, you can do this with plain list items of you set
org-cycle-include-plain-lists to 'integrate.
If you want a checkbox marker in a headline and be able to toggle it, this shouldn't be too hard either. Here is an idea:
(defun org-toggle-headine-checkbox ()
"Toggle checkbox marker in headlines."
(when (and (org-at-heading-p)
(looking-at "\\*+ +\\[\\(?1:[X ]?\\)\\]")))
(let ((state (string= (match-string 1) "X")))
(replace-match (format "%s" (if state " " "X")) nil t nil 1)))))
Bind it to a key of your liking. If you want it on C-c C-c, you could put a before advice on
org-ctrl-c-ctrl-c; the problem with this approach is that C-c C-c on headlines already sets the tags.
Of course, there are other possibilities: Don't set a todo keyword at all (you can still mark them DONE and clock into the headline); set a different keyword (e.g. TASK) and filter in the agenda. etc.