Task:
Open first transaction (T1) that update some rows and rollback (always)
In same time (after open T1 but befor rollback) other transaction T2 can modify the same rows and commit it
In this case T2 wait T1 (used READ_COMMITTED_SNAPSHOT isolation level)
Can it be done without wait?
Example: First query window
IF NOT EXISTS ( SELECT  *
            FROM    sysobjects
            WHERE   name = 'TestLockTable'
                    AND xtype = 'U' ) 
BEGIN
    CREATE TABLE TestLockTable
        (
          Id INT NOT NULL ,
          Name VARCHAR(64) NOT NULL
        )
END
INSERT  INTO dbo.TestLockTable
    ( Id, Name )
VALUES  ( 1, 'test' )
BEGIN TRANSACTION T1
UPDATE  dbo.TestLockTable
SET     Name = 'test1'
WHERE   Id = 1;
Second:
BEGIN TRANSACTION T2
SELECT  *
FROM    dbo.TestLockTable
WHERE   Id = 1; --Select 'test' without wait
UPDATE  dbo.TestLockTable 
SET     Name = 'test2'
WHERE   Id = 1; --This T2 hang on
COMMIT TRANSACTION T2
And last:
ROLLBACK TRANSACTION T1
After rollback T1, T2 can commit and we get 'test2' in row
 
                        
All DML takes X-locks, always. This is so that rollbacks can be performed reliably. No way around it, this is a core principle of the engine.
You need a different approach. Doing exotic stuff with locks is not recommended anyway because it is hard to get right and hard to test.
Without knowing what you are trying to accomplish I can't suggest a better alternative.