If a database is in memory does it still need indexing?
Yes, an index will help.  Without an index all the RDBMS can do is start at the beginning of the data and work its way toward the end, stopping when it finds what it's looking for.  This is a O(N) operation.  With a B-Tree index in place it reduces to O(log(N)).  This is true whether the data is held on disk or in memory.