Robert,
To my knowledge,whether it is ENQUEUE_E_TABLE or Custom Lock Object a table can be locked at the record level only using Primary keys.But through Custom Lock Object we can extend the lock even to Foreign keys related to secondary tables.Let's see what experts get to say on this.
K.Kiran.