Hola:
 
Bien yesmina 

 : 
Me alegro de que te hayan servido nuestras aportaciones, y que sobre todo, lo hayas completado tú. 
  
flaviovich: No sé cuál es tu duda... 
obj es lo que se pasa a la función como parámetro, y es un objeto de formulario:
<input ... onclick="marcar(this)" /> 
Por lo tanto se puede referenciar al mismo formulario como el objeto form de cualquiera de sus elementos... 
Es curioso que para referenciar a un formulario desde el objeto document se puede recurrir a la colección / array de formularios "forms" (document.forms)... pero esa es otra cuestión... 
Luego al usar with (obj.form) puedo referenciar a los distintos objetos del formulario sencillamente por sus nombres. 
with (obj.form) todos.checked = true;
es lo mismo que poner:
obj.form.todos.checked = true; 
Pero a pesar de ser lo mismo, cuando se tiene que referenciar al mismo sub-objeto en varias ocasiones, creo que se facilita la lectura y se simplifica (en ocasiones mucho) la escritura. 
Si no es eso a lo que te refieres 

 , dímelo, porque tengo mis dudas sobre las dudas tuyas (vaya la redundancia). 
Saludos