TL;DR version - Just use ARM mode, but expect your assembler to barf on ARMv7 operands.
Short version - mostly, you can use either (or a mixture of both as long as you only use the same instruction set within one block of code and use bx/blx to jump between blocks that use a different instruction set).
Long version - On reset, the processor is in ARM mode, so reset handling has to be initially ARM (at least on the 1176, certain nominally "ARM" processors only support thumb, and thus start up in thumb mode). Exception handlers apart from reset execute in either Thumb or ARM mode, depending on the setting of SCTLR.TE
I'd strongly recommend using only one instruction set, and the ARM set is both more extensive (Thumb only provides a subset of the "most commonly used" ARM instructions) and far easier to grok. It's also easier to decode / encode manually if that's your bag
Next up, you need to deal with what variant of the instruction set you have. The 1176JZF-S is ARMv6, supporting the ARMv6T2 and ARMv6-K extensions. As such, you can use any of the ARM instructions marked ARMv5, ARMv6, ARMv6-K or ARMv6-T2 in the ARMv7AR-ARM, but not those marked ARMv7(anything). I'm not sure about the ARMv6[k]Z security extensions.
Oh, and it has "Jazelle version 1" as well. So you can poke Java bytecode at it if you are so inclined. The very concept sends shivers up my spine
 B1.6.3 "Exception Entry" and B3.12.17, "c1, System Control Register (SCTLR)" in the ARMv7AR-ARM
 A5.1, "ARM instruction set encoding" in the ARMv7AR-ARM
 Appendix G, "ARMv6 Differences" in the ARMv7AR-ARM
 A.2.10.2, "Jazelle direct bytecode execution support" in the ARMv7AR-ARM