to je definitivno najlakši, ali i najneoptimizovaniji način da to uradiš.
prvo, što bi uopšte pravio alternativu ListViewu? da li neka druga kontrola može da ti završi posao. po onome što opisuješ, neki Grid ili slično?
drugo, koristi iscrtavanje (Paint event) za crtanje kontrole, a unutrašnje liste (nizove) u kojima ćeš da čuvaš ikonice i nazive itema...